目錄
前述:
在瞭解mysql索引機制時,組合索引提到了遵循最左前綴原則,所以對此進行了瞭解,在此記錄
對於我們的sql有沒有使用索引,可以使用explain關鍵字來查看sql語句的執行計劃,可以通過explan關鍵字來查看當前sql是否使用索引
詳述:
由上面所說的,最左原則一般作用用於mysql中的組合索引中的
假設現在創建一個表mytable,且創建a,b,c組合索引,索引名爲abc,
CREATE TABLE mytable ( `a` int(11), `b` VARCHAR(32), `c` VARCHAR(32),INDEX mytable_abc (`a`,`b`,`c`) );
下面我們根據上面的mytable_abc組合索引,來說下"最左前綴原則".
- 上面創建組合索引時,第一個字段爲a
根據最左前綴原則,在sql的where後,必須使用字段a作爲條件,則可使用組合索引。例如:總的來說,就是where後要有字段a作爲條件,纔會使用索引,只有a作爲條件,至於a在where中出現的先後順序,則不影響select * form mytable where a = 1 select * form mytable where a = 1 and b = 'hehe' select * form mytable where a = 1 and c = 'heihei' select * form mytable where c = 'heihei' and b = 'hehe' and a = 1 ...
如果where條件中不帶a,只有b或者c,則在查詢時,則不會使用索引。例如:select * form mytable where b = 'hehe' select * form mytable where c = 'heihei' and b = 'hehe'
- 在where中使用字段a進行like查詢時,用like時左邊必須是固定值,通配符只能出現在右邊,則使用索引。例如:
而通配符在右邊時,則不會使用索引,例如:select * from mytable where a like '1%';#此時a爲varchar類型
select * from mytable where a like '%1';#此時a爲varchar類型
總述:
以上便是mysql中最左前綴原則及其使用注意的地方,其實最核心的地方也在其名字上了:最左,前綴。
注意的是:在組合索引中,對於索引的使用,需要用到最左前綴原則哦。