1. 程式人生 > >MySQL實戰05の索引(下)

MySQL實戰05の索引(下)

 

1. 覆蓋索引

索引k上已經包含了我們的查詢需求,稱之為覆蓋索引。
好處:
覆蓋索引可以減少樹的搜尋次數,顯著提升效能。

 

2. 字首索引

聯合索引:多個欄位組成的索引。
最左字首:可以是聯合索引的最左N個欄位,也可以是字串索引的最左M個字元。
如何安排索引內的欄位順序呢?
(1)如果調整順序,可以減少維護一個索引,那麼這個順序往往就是需要優先考慮採用的。
(2)考慮的原則就是空間

 

3. 索引下推

select * from user where name like '張%' and age =10;聯合索引(name,age)

在MySQL5.6之前,根據索引找到張開頭的欄位開始一個一個回表,到主鍵索引上找出資料行,在對比欄位。 在MySQL5.6引入索引下推優化,可以在索引遍歷過程中,多索引欄位包含欄位先做判斷,直接過濾掉不滿足條件的記錄,減少回表次數。

 

總結

理解索引的概念,覆蓋索引,字首索引,索引下推。

在滿足需求的情況下,儘量少的訪問資源是資料庫設計的重要原則之一。

原文地址:https://time.geekbang.org/column/article/69636