gpt4 book ai didi

mysql - 如何避免此 mysql 查询的文件排序

转载 作者:可可西里 更新时间:2023-11-01 08:07:49 26 4
gpt4 key购买 nike

我需要一些帮助来避免对这个查询进行文件排序。

  SELECT id 
FROM articles USE INDEX(group)
WHERE type = '4'
AND category = '161'
AND did < '10016'
AND id < '9869788'
ORDER BY id DESC
LIMIT 10

INDEX(group) 是 (type, category, did, id) 的覆盖索引

由于 ORDER BY id DESC,执行文件排序。有没有办法避免对此类查询进行文件排序?

最佳答案

更改索引列顺序。索引对于排序没有用,因为它是第 4 列,还不能按原样使用。

当然,这会影响此 WHERE 的索引的有用性,因为在相等列之前需要一个不等列

MySQL docs ,你打破了“你在键的非连续部分使用 ORDER BY”和“用于获取行的键与 ORDER BY 中使用的键不同”

编辑:根据我上面的链接,您不能拥有同时满足 WHERE 和 ORDER BY 的索引。由于我在上面发布的 2 个条件,它们是互斥的

另一个建议:

  • id 上的单列索引
  • 也回到原来的索引
  • 删除索引提示
  • 希望优化器可以使用两个索引(“索引交集”)

关于mysql - 如何避免此 mysql 查询的文件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6659095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com