Btree 與 Btree 的區別

2021-09-19 03:59:33 字數 526 閱讀 5644

mysql 的優化,主要就是索引的優化。因而需要對索引的資料結構有乙個了解。最常用的索引就是b+tree  索引,而且b+tree  是由btree 演變而來。在講解btree 之前,首先說一下系統對磁碟的讀取。

計算機系統通過將磁碟的內容讀入記憶體中然後才對資料進行操作。當然不可能將全部磁碟的內容讀入記憶體。一般是以磁碟塊的大小進行讀入,也就是常說的io操作。mysql  常用的資料庫引擎 innodb則採用 頁的方式進行磁碟讀取。頁,是一種磁碟管理的方式。所以通過減少io操作,來提高資料庫查詢效率。

btree 索引是一種資料結構。每個節點一般包括  鍵值、資料庫記錄除鍵值外的資料,指標(指向子節點的指標)。

b+tree  索引 的每個非葉子節點一般包括鍵值 ,指標,只有葉子節點才包括資料。

由於 btree 索引 每個節點(一般每個節點對應於乙個磁碟塊)也儲存資料,所以每個節點儲存的鍵值會很少,導致需要很多節點,導致樹的深度增加,而樹的深度就是磁碟io的次數,而b+tree 非葉子節點不儲存資料,所以每個節點儲存的鍵值相應的增多,從而樹的深度降低,提高了查詢效率。

B Tree與B Tree 的區別

1 b 樹的關鍵字和記錄是放在一起的,葉子節點可以看作外部節點,不包含任何資訊 b 樹的非葉子節點中只有關鍵字和指向下乙個節點的索引,記錄只放在葉子節點中。2 在b 樹中,越靠近根節點的記錄查詢時間越快,只要找到關鍵字即可確定記錄的存在 而b 樹中每個記錄的查詢時間基本是一樣的,都需要從根節點走到葉...

BTree和B Tree 簡單區別

本篇作用於各種樹之間的區別,非演算法詳細介紹,只是給我們這種非科班出身的一種大概的印象,現在網上更多是講各種樹的怎麼實現的細節問題,本篇不涉及那麼高深,如果詳細了解可以查閱他人的資料,很多大神已經說的很多了 二叉樹效果 這個是我們想象中的本應該的樹的資料結構。可是他存在一種極端的情況 他的查詢效率就...

BTree和B Tree 簡單區別

本篇作用於各種樹之間的區別,非演算法詳細介紹,只是給我們這種非科班出身的一種大概的印象,現在網上更多是講各種樹的怎麼實現的細節問題,本篇不涉及那麼高深,如果詳細了解可以查閱他人的資料,很多大神已經說的很多了 二叉樹效果 這個是我們想象中的本應該的樹的資料結構。可是他存在一種極端的情況 他的查詢效率就...