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列不能使用索引

​ 因为索引列的顺序很重要,这些限制都和索引列的顺序有关

发布了22 篇原创文章 · 获赞 5 · 访问量 1061

猜你喜欢

转载自blog.csdn.net/lighter613/article/details/102973668