私はMySQLを使用しており、さまざまなインデックスに保存するデータの正規バージョンとして使用しようとしているデータベースがあります。つまり、主キーによって一連のデータをすばやく取得できる必要がありますが、途中で並べ替える必要もあります。MySQL で効率的にそれを行う方法がわかりません。
私のテーブルは次のようになります。
CREATE TABLE demo.widgets (
id INT AUTO_INCREMENT,
-- lots more information I need
awesomeness INT,
PRIMARY KEY (id),
INDEX IDX_AWESOMENESS (awesomeness),
INDEX IDX_ID_AWESOMENESS (id, awesomeness)
);
そして、私は次の行に沿って何かをしたい:
SELECT *
FROM demo.widgets
WHERE id IN (
1,
2,
3,
5,
8,
13 -- you get the idea
)
ORDER BY awesomeness
LIMIT 50;
しかし、残念ながら、私はこれから良いパフォーマンスを得ることができないようです. 常にファイルソートに頼る必要があります。この設定でパフォーマンスを向上させる方法はありますか? または、別のデータベースを検討する必要がありますか?