文章详情页
Mysql 组合索引最左原则的疑惑
浏览:198日期: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. dockerfile - 为什么docker容器启动不了?2. html5 - node静态资源服务器设置了Cache-Control,但浏览器从来不走3043. debian - docker依赖的aufs-tools源码哪里可以找到啊?4. 对html实现监测 发现不对5. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?6. angular.js - angular内容过长展开收起效果7. 为什么我ping不通我的docker容器呢???8. docker内创建jenkins访问另一个容器下的服务器问题9. angular.js使用$resource服务把数据存入mongodb的问题。10. javascript - js中向下取整
排行榜

网公网安备