私はInnoDB
〜50MB(〜500.000エントリ)のテーブルを持っています。MySQLクエリパフォーマンス(InnoDB)
テーブルの構造:IDのuser_id情報
Querys:
私はよりIDが高いこのユーザーの次のエントリを取得したいと思います10:
SELECT * FROM `table` WHERE `user_id`=1 AND `id` > 10 LIMIT 1
(レスポンス:〜0.5msの)
私は300000よりも高いIDを持つこのユーザーの次のエントリを取得したいと思います:
SELECT * FROM `table` WHERE `user_id`=1 AND `id` > 300000 LIMIT 1
(レスポンス:〜215ms)
私はいくつかのインデックスを試してみましたが、誰も応答時間を減少させない:
ALTER TABLE table ADD INDEX (user_id, id);
どのように私はこのケースでパフォーマンスを向上させることができますか? id
があなたのPRIMARY KEY
であることを提供
両方のクエリで 'explain'を共有できますか? –
応答時間の測定方法、返される行の数、 'info'は大量のデータを含むBLOBです。 – Uueerdo
@RC質問が更新されました。 –