针对最大值的 MySQL 查询优化

标签 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。

最佳答案

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

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

关于针对最大值的 MySQL 查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8196041/

相关文章:

php - sql语句放入数组导致重复

sql - Postgresql SQL 状态 : 25P02 Deadlock?

php - CakePHP:如何包含所有顶级关联

mysql - 查询慢,索引哪些字段

MySQL - 尽管有索引,但具有多个条件的查询速度很慢

Mysql查询优化-非常慢

mysql - 我笔记本电脑上的 sql workbench 和谷歌云计算引擎上的 Mysql 之间的连接(不是云 sql)

php - 在销售订单网格字段中使用列别名

mysql - 数据库构建过程管理

sql - 如何消除 Oracle-SQL-Table 中含义相同的值?