04 深入淺出索引(上)

2021-09-16 21:13:09 字數 771 閱讀 5889

1.索引的作用:提高資料查詢效率,就像書的目錄一樣。

2.常見索引模型:雜湊表、有序陣列、搜尋樹

3.雜湊表:鍵 - 值(key - value)。

4.雜湊思路:把值放在陣列裡,用乙個雜湊函式把key換算成乙個確定的位置,然後把value放在陣列的這個位置

5.雜湊衝突的處理辦法:鍊錶

6.雜湊表適用場景:只有等值查詢的場景

7.有序陣列:按順序儲存。查詢用二分法就可以快速查詢,時間複雜度是:o(log(n))

8.有序陣列查詢效率高,更新效率低

9.有序陣列的適用場景:靜態儲存引擎。

10.二叉搜尋樹:每個節點的左兒子小於父節點,父節點又小於右兒子

11.二叉搜尋樹:查詢時間複雜度o(log(n)),更新時間複雜度o(log(n))

12.資料庫儲存大多不適用二叉樹,因為樹高過高,會適用n叉樹

13.innodb中的索引模型:b+tree

14.索引型別:主鍵索引、非主鍵索引

主鍵索引的葉子節點存的是整行的資料(聚簇索引),非主鍵索引的葉子節點內容是主鍵的值(二級索引)

15.主鍵索引和普通索引的區別:主鍵索引只要搜尋id這個b+tree即可拿到資料。普通索引先搜尋索引拿到主鍵值,再到主鍵索引樹搜尋一次(回表)

16.乙個資料頁滿了,按照b+tree演算法,新增加乙個資料頁,叫做頁**,會導致效能下降。空間利用率降低大概50%。當相鄰的兩個資料頁利用率很低的時候會做資料頁合併,合併的過程是**過程的逆過程。

17.從效能和儲存空間方面考量,自增主鍵往往是更合理的選擇。

深入淺出索引(上)

我們都知道資料庫的索引是用來提公升檢索速度的,但是索引究竟內部是怎麼工作的呢,就來說說這個話題8 索引就像書的目錄一樣,幫助我們更快的查詢到我們需要的資料。索引的種類有很多種,接下來主要介紹三種常見,也比較簡單的資料結構,分別是雜湊表,有序陣列和搜尋樹。然後從使用的角度分析一下,三者的區別 雜湊表是...

03 深入淺出索引上下

三種索引 全文索引,雜湊索引,b 樹索引 索引維護 頁 隨機插入,向右 索引的選擇 身份證id or 自增主鍵 效能 儲存。效能 身份證id,是隨機插入,頁 是中間 可能會造成一定的儲存浪費,次數頁比較多。但是自增主鍵,只有頁滿才會將新點 到下乙個頁,效率是最高的。儲存 乙個b 樹節點,儲存的身份證...

04 深入淺出索引

索引的常見模型 innodb索引模型 每乙個索引在innodb中都對應一顆b 樹。主鍵索引的葉子結點存的是整行資料 聚簇索引 非主鍵索引的葉子結點儲存的是主鍵值 二級索引 也就是說基於二級索引的查詢會有一次回表。索引維護 b 樹為了維護有序性,在插入新值的時候需要做必要的維護。自增主鍵 每次插入都是...