Mysql中的最左前綴原則

目錄

 

前述:

詳述:

總述:


前述:

在瞭解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組合索引,來說下"最左前綴原則".

  1. 上面創建組合索引時,第一個字段爲a
    根據最左前綴原則,在sql的where後,必須使用字段a作爲條件,則可使用組合索引。例如:
    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作爲條件,纔會使用索引,只有a作爲條件,至於a在where中出現的先後順序,則不影響
    如果where條件中不帶a,只有b或者c,則在查詢時,則不會使用索引。例如:
    select * form mytable where b = 'hehe' 
    select * form mytable where c = 'heihei' and b = 'hehe'
  2. 在where中使用字段a進行like查詢時,用like時左邊必須是固定值通配符只能出現在右邊,則使用索引。例如:
    select * from mytable where a like '1%';#此時a爲varchar類型
    通配符在右邊時,則不會使用索引,例如:
    select * from mytable where a like '%1';#此時a爲varchar類型

     

總述:

以上便是mysql中最左前綴原則及其使用注意的地方,其實最核心的地方也在其名字上了:最左前綴。

注意的是:在組合索引中,對於索引的使用,需要用到最左前綴原則哦。

參考文檔:
https://www.cnblogs.com/songcuiting/p/10385058.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章