文章詳情頁
Mysql 組合索引最左原則的疑惑
瀏覽:121日期: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 - 關于偽類背景問題2. html - 移動端radio無法選中3. apache - 怎么給localhost后面默認加上8080端口4. html5 - 如何實現圖中的刻度漸變效果?5. windows-7 - Win7中Vmware Workstatoin與Xampp中Apache服務器端口沖突?6. mysql - 數據庫建字段,默認值空和empty string有什么區別 1107. python - 用scrapy-splash爬取網站 為啥iframe下的內容沒有被返回8. 關于Navicat連接到mysql,我改了root的密碼后,Navicat連接報錯1862?9. mysql起不來了,為什么?10. mysql里show full processlist,進程很少
排行榜
