索引使用原则-联合索引最左匹配
生活随笔
收集整理的這篇文章主要介紹了
索引使用原则-联合索引最左匹配
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前面我們說的都是針對單列創(chuàng)建的索引,但有的時候我們的多條件查詢的時候,也會建立聯(lián)合索引。單列索引可以看成是特殊的聯(lián)合索引。
比如我們在user 表上面,給name 和phone 建立了一個聯(lián)合索引。
ALTER TABLE user_innodb DROP INDEX comidx_name_phone; ALTER TABLE user_innodb add INDEX comidx_name_phone (name,phone);聯(lián)合索引在B+Tree 中是復合的數(shù)據(jù)結(jié)構(gòu),它是按照從左到右的順序來建立搜索樹的(name 在左邊,phone 在右邊)。
從這張圖可以看出來,name 是有序的,phone 是無序的。當name 相等的時候,phone 才是有序的。
這個時候我們使用where name= '青山' and phone = '136xx '去查詢數(shù)據(jù)的時候,B+Tree 會優(yōu)先比較name 來確定下一步應該搜索的方向,往左還是往右。如果name相同的時候再比較phone。但是如果查詢條件沒有name,就不知道第一步應該查哪個節(jié)點,因為建立搜索樹的時候name 是第一個比較因子,所以用不到索引。
?
總結(jié)
以上是生活随笔為你收集整理的索引使用原则-联合索引最左匹配的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 索引使用原则-列的离散(sàn)度
- 下一篇: 什么时候用到联合索引