我正在使用 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;
但不幸的是,我似乎无法从中获得良好的表现。它总是不得不求助于文件排序。有没有办法从这个设置中获得更好的性能,还是我需要考虑不同的数据库?