数据库中索引定义、使用场景代价和数据结构

1.索引是干啥的?
相当于一本书的目录,根据目录中对应章节的页码就能找到相应章节。索引就是为了进行查找,提高找效率。
2.索引使用场景,付出的代价?
适用于需要经常查找但是不经常修改的场景。占用了更多的空间且拖慢了增删改的速度。
3.索引背后的数据结构?
多叉搜索树(B+树)

在这里插入图片描述>
B-树:N个key值换分出N+1个区间,每个区间对应一颗子树。与二叉搜索树相比高度是少了但是每个节点比较次数多了,相比于比较次数来说,IO次数更是关键。

在这里插入图片描述

B+树:B+树也是一个N叉搜索树,每个节点都包含N个key值,每个节点又会分为N个区间。父亲节点中的值会作为子节点中的最大值(最小值),最下面的叶子结点就是用链表进行顺序连接。
特点:父节点的值都会在子节点中体现
非叶子节点的值都会在叶子节点中体现
最下面叶子节点使用链表进行按顺序连接
做为索引的优势
整体IO次数少
所有查询最终都会落在叶子节点,查询IO次数都是差不多的因此查询素速度稳定
叶子结点用链表连接以后非常适合进行范围查找,例如找 >= 5 且 <= 11的值
所有数据的存储都是放在叶子节点上的,非叶结点只需要保存key值即可,非叶节点占用空间小甚至可以缓存到内存中,这时磁盘IO几乎就没了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值