我有一个巨大的MySQL数据库表(InnoDB),其中包含约45,000,000个条目。它包含包含三个列X,Y和SCORE的相似度数据。 (含义:X与Y的相似度得分为0.562。)
现在我想在X上选择SCORE> 0.8。
SELECT * FROM tableFOO WHERE X = x AND SCORE > 0.8;
但是此方法需要很长时间(〜20秒)。
有没有一种方法可以更有效地选择DOUBLE值?
最佳答案
在X和SCORES上创建索引:
CREATE INDEX idx_x ON tableFOO(X);
CREATE INDEX idx_score ON tableFOO(SCORE);
(感谢乔恩·斯基特的评论)