ページには、ページの読み込み速度を下げるという1つのクエリがあります。
SELECT * FROM users1 WHERE user_id NOT IN (SELECT user_id FROM users2)
USERS1
サイトのすべてのユーザー、大量のデータを含むテーブルです。
USERS2
相互フォローユーザーの表です。
そのため、まだフォローしていないユーザーを選択する必要があります。
最適化の方法はありますか?
私は実際のクエリを投稿しています:
SELECT users.*
FROM (
SELECT user_id
FROM users
WHERE user_id!=156 AND user_id NOT IN (
SELECT follower_id
FROM following
WHERE user_id=156
) ORDER BY RAND() LIMIT 2
) AS temp
JOIN users ON users.user_id = temp.user_id;
user_id
フィールドのインデックス。
クエリにかかった時間は 0.0912 秒
このクエリは、データの少ないテスト サーバーでは問題なく動作しますが、実際のサーバーでは最大 3 秒かかります。