B+树在数据库索引中的应用

本文详细介绍了B+树在数据库索引中的应用,对比了MyISAM和InnoDB存储引擎的索引实现方式。MyISAM索引与数据分离,而InnoDB的数据文件本身就是索引文件,采用聚集索引。InnoDB的主键选择和插入优化建议使用自增主键以保持紧凑的索引结构和提高插入效率。
摘要由CSDN通过智能技术生成

目前大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构(更少的磁盘I/O操作次数的渐进复杂度)

一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。这样的话,索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘I/O操作次数的渐进复杂度。换句话说,索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。

MyISAM的索引实现

数据库不同的搜索引擎辅助索引的实现原理不一样,MyISAM是索引和文件分离的

一般以主键为索引的叫做主索引,而以其他键为索引的叫做辅助索引;

直接上MyISAM的实现原理,利用B+树实现,

这里写图片描述

由上图可以看出,col1是主键,而叶子结点存储的数据是一个地址,通过地址找到数据;

下面是Col2列的辅助索引(和主索引不同的是辅助索引的key是可以重复的)
这里写图片描述

同样也是一颗B+Tree,data域保存数据记录的地址。因此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值