文章详情页
Mysql 组合索引最左原则的疑惑
浏览:262日期: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. css - flex布局垂直效果实现不了?2. javascript - webpack构建工具重构代码的流程是怎么样的?3. mysql优化 - mysql 分页查询优化。4. css3 - 扩展本地项目中阿里的iconfont字体库,添加图标字体5. mysql - 仅仅只是把单引号与反斜杠转义不用prepare statement能否避免sql注入?6. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?7. css3不包括8. javascript - 如何将一个长为365的数组对象按月份切割成12组?9. css - html表格 td 宽度随着固定为内容宽度10. javascript - 页面加载慢,有什么优化方案
排行榜

网公网安备