文章詳情頁
Mysql 組合索引最左原則的疑惑
瀏覽:112日期:2022-06-15 17:53:39
問題描述
如果test表有一個組合索引(a,b),執(zhí)行如下兩條語句。explain select * from test where a=1 and b=1;explain select * from test where b=1 and a=1;執(zhí)行結果顯示這兩條語句都用索引。根據最左原則,只有第一條使用索引,第二條不使用索引。不明白為什么,求解惑
問題解答
回答1:題主列出的情況,mysql會優(yōu)化where子句的條件順序,讓查詢符合索引順序。
更具體點,上面的sql屬于交集查詢(都是and),在mysql中會使用Index Merge intersection algorithm算法來調整條件子句順序。更詳細的解釋參見官方文檔。
相關文章:
1. Span標簽2. docker-machine添加一個已有的docker主機問題3. redis啟動有問題?4. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””5. docker-compose中volumes的問題6. android新手一枚,android使用httclient獲取服務器端數據失敗,但是用java工程運行就可以成功獲取。7. javascript - ng-options 設置默認選項,不是設置第一個哦,看清楚了!8. angular.js使用$resource服務把數據存入mongodb的問題。9. java - Collections類里的swap函數,源碼為什么要新定義一個final的List型變量l指向傳入的list?10. css - 求推薦適用于vue2的框架 像bootstrap這種類型的
排行榜
