Mysql四種樹索引優化原理剖析

2021-10-13 02:39:23 字數 1323 閱讀 9339

2.為何mysql中索引結構使用b+樹而不使用二叉樹、紅黑樹、b樹呢?

小的在父節點左邊,大的或等於父節點的在父節點右邊(在同乙個節點中不同的key值也是從左到右按從小到大排序)

二分查詢(結點內外部)

先調入根節點,再陸續調入其他節點

索引檔案和資料檔案都放在都乙個檔案裡面

索引檔案和資料檔案不在同乙個檔案裡面

為第二列建立索引的確能優化查詢效率,但並不是所有場景都適用,倘若為第一列建立索引,那麼索引結構如圖2所示:

圖一:

圖2:這樣的話無論我們使用第二列欄位中的任何乙個值作為條件去查詢,都無異於掃瞄整張表。

二叉樹會出現上面所說的問題,完全是由於樹的高度太高了,因此紅黑樹對二叉樹的高度進行了限制,準確來說是調整。這樣的話,查詢key為6的元素就只要3次即可而不像二叉樹那樣需要5次了。

雖然紅黑樹從調整高度方面優化了二叉樹,但倘若我們的資料量很大的時候,樹的高度還是會很高,因此我們需要換個角度來思考解決辦法,縱向不行那麼就在橫向發展:在乙個結點中放更多的元素,這就是b樹

b+樹對b樹的優化就是將資料或者資料儲存的位址放在對應的葉子結點,為何?我們來算一筆賬:

假如乙個結點16kb,乙個key元素8b,指標占用6b,key和指標成對出現,那麼乙個結點可以存16kb/14b=1170個key,然而b樹每個key還有對應的資料或者資料儲存的位址,這就使得乙個結點能放的key的個數變少了

假設葉子結點乙個索引元素和對應的資料或者資料儲存的位址一共佔1kb,那麼16kb的結點可以存16個這樣的鍵值對,那麼算下來的話3層的b+樹撐滿就可以儲存1170117016=2千多萬條資料。

mysql引擎的四種索引與表的四種索引

苟且,詩與遠方 mysql引擎的四種索引與表的四種索引是不同的,千萬不要混淆了 引擎的四種索引 b 樹引 r樹引 雜湊索引 全文索引 表的四種索引 主鍵索引 唯一索引 普通索引 全文索引 myisam innodb bdbmemory archive 全文索引yy b 樹索引yy yy雜湊索引yy ...

MySQL四種常用索引型別

提到mysql優化,索引優化是必不可少的。其中一種優化方式 索引優化,新增合適的索引能夠讓專案的併發能力和抗壓能力得到明顯的提公升。我們知道專案效能的瓶頸主要是在 查 select 語句,要提公升 查 這一效能,mysql索引是必不可少的。接下來總結一下mysql常見的四種索引 一.四種索引 主鍵索...

mysql的四種索引型別

一 索引的型別 mysql索引的四種型別 主鍵索引 唯一索引 普通索引和全文索引。通過給字段新增索引可以提高資料的讀取速度,提高專案的併發能力和抗壓能力。索引優化時mysql中的一種優化方式。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。主鍵索引 主鍵是一種唯一性索引,但它必須...