資料庫索引最左字首原則
阿新 • • 發佈:2018-12-02
最左字首原則:顧名思義是最左優先,以最左邊的為起點任何連續的索引都能匹配上,
注:如果第一個欄位是範圍查詢需要單獨建一個索引
注:在建立多列索引時,要根據業務需求,where子句中使用最頻繁的一列放在最左邊。
當建立(a,b,c)複合索引時,想要索引生效的話,只能使用 a和a,b和a,b,c三種組合
例項:以下是常見的幾個查詢:
mysql>SELECT `a`,`b`,`c` FROM A WHERE `a`='aa' ;
mysql>SELECT `a`,`b`,`c` FROM A WHERE `b`='bb' AND `c`='cc';
mysql>SELECT `a`,`b`,`c` FROM A WHERE `a`='aa' AND `c`='cc';
請問:想要索引最大化的使用需要至少建幾個索引
答:需要建立兩個複合索引:a,c、b,c
原理:
採用B+樹結構,如果是複合索引,比如 a,b,c
是先對a進行建立索引的結果下,再對b進行建立索引, 然後在以上的結果下,對c進行建立索引
因此,只有a, ab, abc ,這三種情況下是有序的,會走索引,
如果光看b, 是無序的。
https://blog.csdn.net/qq_19557947/article/details/76951912