B-Tree 索引的相關介紹

一.概念

​ B-Tree(多路搜索樹,並不是二叉的),是一種常見的數據結構.使用B-Tree結構可以顯著減少定位記錄時所經歷的中間過程,從而加快存取速度.這個數據結構一般用於數據庫的索引,綜合效率較高.

二.二叉樹和平衡二叉樹

​ 瞭解二叉樹和平衡二叉樹

​ 引用: B-Tree和B+Tree詳解

https://blog.csdn.net/Hubery_James/article/details/80565137

​ 引用:快速理解平衡二叉樹、B-tree、B+tree、B*tree

https://blog.csdn.net/jacke121/article/details/78268602

三.B-Tree索引的查詢類型

​ B-Tree索引適用於全鍵值,鍵值範圍或者鍵前綴查找(只適用於根據最做前綴的查找)

1.全值匹配

​ 是和索引中的所有列進行匹配

2.匹配最左前綴

​ 只使用索引的第一列

3.匹配列前綴

​ 也可以匹配某一列的值的開頭部分

4.匹配範圍值

​ 匹配某一範圍的區間

5.精確匹配某一列並範圍匹配另外一列

​ 一列全部匹配,一列範圍匹配

6.只訪問索引的查詢

​ 查詢值需要訪問索引,而無需訪問數據行

因爲索引樹種的節點是有序的,所以除了按值查找,也可以按照順序查找,如果B-Tree可以按照某種方式查找到值,也可以按照這種方式用於排序

四.B-Tree索引的限制

1.只能匹配最左前綴

​ 如果是匹配第一列之後的其他列進行查找,則無法使用索引

2.不能跳過索引中的列

​ 不用使用第一列和第三列的索引取查找,而缺少了第二列

3.範圍查找右邊的列都不能使用索引

​ 如果某個查詢有個列查詢範圍,則其右邊所有列都無法使用索引優化查找

-- 示例 索引列爲a.b.c
select * from test where a = 'a' and b like '%b%' and c = 'd'
-- 則只能 a b 列使用索引,c列不能使用索引

​ 因爲索引列的順序很重要,這些限制都和索引列的順序有關

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章