MySQL查询优化最大值

时间:2011-11-19 17:56:44

标签: mysql sql query-optimization

我正在尝试查看特定哈希码是否在表的最新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。

2 个答案:

答案 0 :(得分:0)

使用现有查询但添加两个索引(如果它们尚不存在):

  • (idsearch)
  • 上的单列索引
  • (haschode,idsearch)
  • 上的多列索引

答案 1 :(得分:0)

假设a.idsearch是自动递增的主键,那么您可以使用ORDER BYLIMIT

SELECT a.idsearch
FROM searches a
WHERE a.hashcode = 549716444
ORDER BY a.idsearch DESC
LIMIT 1000;

这将首先为您提供最新的idsearch,因此请相应地调整您的代码。

相关问题