MySQL B 樹索引和雜湊索引的區別

時間 2021-06-13 06:39:23

1樓:

在mysql裡常用的索引資料結構有b+樹索引和雜湊索引兩種,我們來看下這兩種索引資料結構的區別及其不同的應用建議。

二者區別

備註:先說下, 在mysql文件裡,實際上是把b+樹索引寫成了btree ,例如像下面這樣的寫法:

create table t(

aid int unsigned not null auto_increment,

userid int unsigned not null default 0,

username varchar(20) not null default ‘’,

detail varchar(255) not null default ‘’,

2樓:愛可生雲資料庫

b+ 樹是對 b 樹的一個小升級。大部分資料庫的索引都是基於 b+ 樹儲存的。mysql 的 myisam 和 innodb 引擎的索引都是基於 b+ 樹儲存。

b+ 樹最大的幾個特點:

1. 非葉子節點只保留 key,放棄 data;

2. key 和 data一起,在葉子節點,並且儲存為一個有序連結串列(正序,反序,或者雙向);

3. b+ 樹的查詢與 b 樹不同,當某個結點的 key 與所查的 key 相等時,並不停止查詢,而是沿著這個 key 左邊的指標向下,一直查到該關鍵字所在的葉子結點為止。