文章详情页
Mysql 组合索引最左原则的疑惑
浏览:247日期:2022-06-15 17:53:39
问题描述
如果test表有一个组合索引(a,b),执行如下两条语句。explain select * from test where a=1 and b=1;explain select * from test where b=1 and a=1;执行结果显示这两条语句都用索引。根据最左原则,只有第一条使用索引,第二条不使用索引。不明白为什么,求解惑
问题解答
回答1:题主列出的情况,mysql会优化where子句的条件顺序,让查询符合索引顺序。
更具体点,上面的sql属于交集查询(都是and),在mysql中会使用Index Merge intersection algorithm算法来调整条件子句顺序。更详细的解释参见官方文档。
相关文章:
1. angular.js - 在移动端web上如何解决输入法挡住文本框问题?2. 老师,flex-shrink: 1; 按视频操作,不会自动缩放3. css3 - Firefox 字号相对IE、Chrome更大,如何在CSS中统一?4. 如何解决docker宿主机无法访问容器中的服务?5. dockerfile - [docker build image失败- npm install]6. docker网络端口映射,没有方便点的操作方法么?7. PHP中的$this代表当前的类还是方法?8. java - 为什么此私有静态变量能被访问呢?9. docker不显示端口映射呢?10. docker api 开发的端口怎么获取?
排行榜

网公网安备