工作中的踩坑记录
20230209
MySQL in 和 order by 关键字无法同时命中索引
在 MySQL 中,IN 和 ORDER BY 语句不能同时命中索引。
使用 IN 运算符来过滤行时,MySQL 会先使用索引来定位表中的行,并将这些行的所有数据读入内存中。随后,MySQL 会根据查询语句中的 ORDER BY 子句对这些数据进行排序。
如果表中有很多行,并且需要对所有行进行排序,那么排序操作可能会很慢,因为它需要读入很多数据并进行大量比较操作。为了避免这种情况,您可以使用带索引的列作为 ORDER BY 子句中的排序列,从而加速排序操作。
因此,IN 和 ORDER BY 语句可以被分开处理,以提高数据库性能。但是,它们不能同时命中索引。

浙公网安备 33010602011771号