B-Tree 索引的相关介绍

本文深入探讨B-Tree(多路搜索树)的概念及其在数据库索引中的应用,解析B-Tree索引的六种查询类型:全值匹配、最左前缀匹配等,并阐述B-Tree索引的三大限制条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.概念

​ B-Tree(多路搜索树,并不是二叉的),是一种常见的数据结构.使用B-Tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.这个数据结构一般用于数据库的索引,综合效率较高.

二.二叉树和平衡二叉树

​ 了解二叉树和平衡二叉树

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

https://blog.youkuaiyun.com/Hubery_James/article/details/80565137

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

https://blog.youkuaiyun.com/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列不能使用索引

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值