我正在尝试查看某个特定的哈希码是否在表的最新 1000 个插入中,实现此查询的最有效技术是什么:
SELECT a.idsearch
FROM searches a
WHERE a.hashcode = 549716444
AND a.idsearch > (SELECT MAX(b.idsearch) - 1000
FROM searches b);
idsearch是一个auto_increment列,是PK。
最佳答案
使用您现有的查询,但添加两个索引(如果它们尚不存在):
- (idsearch) 上的单列索引
- (haschode,idsearch)上的多列索引
关于针对最大值的 MySQL 查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8196041/