文章详情页
Mysql 组合索引最左原则的疑惑
浏览:216日期: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. mysql主从 - 请教下mysql 主动-被动模式的双主配置 和 主从配置在应用上有什么区别?2. 主从复制 - MySQL 主从延迟 300s 以上,求大神解答3. sublime text 3不支持python的input吗4. mysql多表查询5. node.js - vue搭建环境- vue init webpack my-project无响应6. docker-compose 为何找不到配置文件?7. javascript - 关于iscroll的一段代码,希望有人解释8. javascript - js 二维数组比较大小问题。9. css - 小程序canvas环形进度条10. 微信扫码跳转页面是怎么实现的
排行榜

网公网安备