04 深入淺出索引

2021-09-03 09:50:09 字數 605 閱讀 7833

索引的常見模型

innodb索引模型

每乙個索引在innodb中都對應一顆b+樹。

主鍵索引的葉子結點存的是整行資料(聚簇索引)

非主鍵索引的葉子結點儲存的是主鍵值(二級索引)

也就是說基於二級索引的查詢會有一次回表。

索引維護

b+樹為了維護有序性,在插入新值的時候需要做必要的維護。

自增主鍵:每次插入都是追加操作,不涉及記錄的挪動與葉子結點的**。

主鍵長度越小,二級索引的葉子結點就越小,占用的空間也就越小。

如果刪除,新建主鍵索引,會同時去修改二級索引的葉子結點,效能消耗大。

覆蓋索引

含義:索引表覆蓋了查詢的所需的字段內容。

覆蓋索引可以通過避免回表,減少樹的搜尋次數,從而提高查詢效能。

最左字首原則

索引項是按照索引定義裡面出現的字段順序排序的。

最左字首可以是聯合索引的最左n個字段,也可以是字串索引的最左m個字元。

第一原則是,如果通過調整順序,可以少維護乙個索引,那麼這個順序是需要優先考慮採用的。

索引下推

可以在索引遍歷的過程中,對索引中包含的字段先做判斷,直接過濾掉不滿足條件的記錄,減少回表次數。

04 深入淺出索引(上)

1.索引的作用 提高資料查詢效率,就像書的目錄一樣。2.常見索引模型 雜湊表 有序陣列 搜尋樹 3.雜湊表 鍵 值 key value 4.雜湊思路 把值放在陣列裡,用乙個雜湊函式把key換算成乙個確定的位置,然後把value放在陣列的這個位置 5.雜湊衝突的處理辦法 鍊錶 6.雜湊表適用場景 只有...

深入淺出理解索引

一 深入淺出理解索引結構 實際上,您可以把索引理解為一種特殊的目錄。sql server提供了兩種索引 聚集索引 clustered index,也稱聚類索引 簇集索引 和非聚集索引 nonclustered index,也稱非聚類索引 非簇集索引 下面,我們舉例來說明一下聚集索引和非聚集索引的區別...

深入淺出理解索引

一 深入淺出理解索引結構 實際上,您可以把索引理解為一種特殊的目錄。sql server提供了兩種索引 聚集索引 clustered index,也稱聚類索引 簇集索引 和非聚集索引 nonclustered index,也稱非聚類索引 非簇集索引 下面,我們舉例來說明一下聚集索引和非聚集索引的區別...