【发布时间】:2014-07-18 04:46:06
【问题描述】:
我已经看过好几次了,但我可能误解了 EXPLAIN 查询计划。
假设我有一张桌子(col1,col2)。 我想将它与 col1 和 col2 上的另一个表一起加入。 所以我创建了一个索引(col1,col2)。 有时,EXPLAIN 表明索引没有被使用。也许使用了其他一些低效的索引,或者根本没有使用。
但是如果我创建另一个索引(col1),那么使用第一个索引(col1,col2)。
以前有人遇到过这种情况吗?您知道为什么会发生这种情况吗?
我的理论是未使用的索引提供了一些关于表的更准确的统计信息,提示查询计划使用第一个索引。但我对 mysql 的内部工作原理还不够熟悉,不知道这是否属实或如何证明。
【问题讨论】:
标签: mysql