gpt4 book ai didi

mysql - 如何在值列表上使用索引?

转载 作者:行者123 更新时间:2023-11-29 15:59:25 24 4
gpt4 key购买 nike

我有一个查询,该查询包含在 (col1,col2) 上唯一索引的 mytable 上的联接

explain
...
join mytable on col1=1 and col2=2

通过类型:eq_ref显示索引的正确使用

但是当使用列表时,不再使用索引

join mytable on col1=1 and col2 in (2,3,4)

额外:检查每条记录的范围(索引映射:0x1);

这给出了相同的结果:

join mytable on (col1,col2) in ((1,2),(1,3),(1,4))

在提供值列表时是否可以使用索引?

最佳答案

  • 通常情况下,不会JOIN x ON c = ConstantON 子句应指定该表如何与其他表相关。 WHERE 子句应提供过滤功能,例如 col1=1 和 col2=2

  • “行构造函数”早已存在,但直到最近(5.7.3)它们才得到了最少的优化。你运行什么版本?即使使用最新版本,我也希望 (2,3,4) 中的 col1=1 和 col2 至少能够像行构造函数方法一样得到优化。

  • OR 通常会阻止任何优化。也许它永远不会比某些替代方案更快。

  • 我们需要查看整个查询、EXPLAINSHOW CREATE TABLE;可能还有其他问题潜伏在阴影中。

关于mysql - 如何在值列表上使用索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303741/

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