mysqlクエリのWhEREIN()条件に深刻な問題があります。10フィールド以下の2つのテーブルからRESULTをフェッチしています。両方にプライマリフィールドを作成しました。
500を超えるか長いlogged_inIDを表示するには、WHERE IN()を使用する必要があります。そのため、重いクエリが作成され、レコードのフェッチが遅すぎます。login_in IDが20未満の場合は問題ありませんが、50または100以上の場合は処理が遅くなり、処理に時間がかかります。
だから、私の問題はそれを速くする方法ですか?私は間違ったテクニックを使用していますか?つまり、IN()の場所の代わりに何か他のものを使用する必要がありますか?どんなアイデアでも大歓迎です。
SELECT subscriber. * , track . *
FROM track, subscriber
WHERE track.type =1 AND
track.logged_in IN ( 2803, 2806, 54, 54, 64, 383, 833, 2808, 2809, 2810, 56, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832 ) AND
subscriber.post_id = track.post_id AND
track.nmade = subscriber.nmade AND
subscriber.userid = '54'
ORDER BY track.date_created DESC
LIMIT 5