索引的資料結構(Hash B Tree)

2021-10-02 22:14:04 字數 632 閱讀 9196

無序的hash表

【特點介紹】:雖然無序的hash表可以快速的精確查詢,但是不支援範圍查詢。若索引採用無序的hash表,需掃瞄全部的資料,導致查詢速度很慢;

【使用場景】:等值查詢,即key—value場景,如:redis;

有序的hash表

【特點介紹】:有序的hash表適合查詢靜態資料。當進行增、刪、改資料時候就會改變其結構。如:進行增操作時,新增的位置後的所有節點都要後移,成本很高。

【使用場景】:等值查詢、範圍查詢。可做為靜態儲存引擎,儲存靜態資料。如:**購物賬單。

b-tree

乙個節點可以儲存多個元素,b-tree的樹高比完全平衡二叉樹整體的樹高低,提高了磁碟的io效率。

b+tree

【特點介紹】:b+tree是對b-tree的改進。非葉子節點只儲存鍵值資訊,所有葉子節點之間都有乙個鏈指標,資料記錄都存放在葉子節點中,提高了範圍查詢的效率。

【使用場景】:mysql的索引使用b+樹,提高查詢索引時的磁碟io和範圍查詢效率。

【注】:b+樹中乙個節點為頁的倍數最為合適,不是頁的倍數會造成資源的浪費。

索引 資料結構

子元素比根元素大,放在右邊,反之亦然。如果資料從1開始遞增,依然使用二叉樹的話,二叉樹就會變成鍊錶結構 本質上是二叉樹,如果某一邊的子元素與另一邊的子元素相比超過二個,會發生自旋,一種平衡方式。也叫二叉平衡樹 在自增資料量很大的時候,樹的層數太高,查詢效率也會變低 葉節點具有相同的深度,葉節點的指標...

資料結構索引 InnoDB索引

我們知道,myisam索引檔案和資料檔案是分離的,索引檔案僅僅儲存了資料記錄的位址。在innodb中,資料檔案本身就是索引檔案,表檔案本身就是乙個按照b 樹組織的乙個索引結構,葉節點data儲存了完整的資料記錄,這個索引的key是資料表的主鍵,因此innodb表資料檔案本身就是主索引。上圖是inno...

mysql 資料結構 Mysql索引資料結構

mysql索引資料結構 當慢查詢時,看sql是否走索引。索引的本質 索引是幫助mysql高效獲取資料的排好序的資料結構。mysql若不建立索引,查詢某條資料時則會逐行掃瞄,每掃瞄一行資料就會做一次磁碟io。b tree 葉節點具有相同的深度,葉節點的指標為空。所有索引元素不重複。葉節點中的資料索引從...