Mysql 组合索引最左原则的疑惑
巴扎黑
巴扎黑 2017-04-17 16:16:54
0
1
631

如果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演算法來調整條件子句順序。更詳細的解釋請參見官方文件。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!