浅谈InnoDB引擎数据结构

本文指在为小白理清MySQL检索引擎InnoDB中数据结构的联系与区别。

InnoDB引擎是MySQL默认数据引擎。存在即合理,默认原因不深究。
亲自登库,亲自截图)

InnoDB引擎使用主键索引(主索引)进行数据查找,用户也可以指定使用其他非主键索引(辅助索引)。但辅助索引最终仍依赖于主索引来实现查找。
对于主索引,叶子层存放表中所有的数据记录;辅助索引通过关键字找到主键,检索的时候通过主键在主键索引中找到对应数据行。

主键索引是一级索引。
辅助索引是二级索引。

两种索引分别对应两种数据结构,B+树与B-树。
为响应标题中的‘浅谈’,避免枯燥,以下对B+树B-树的特点介绍只定性描述。

B+树是一种多路查找树,InnoDB下使用此数据结构作为主键索引查找及存储数据,或者说,InnoDB的数据文件本身就是主键索引文件,这样的索引被称为聚簇索引,一个表只能有一个聚簇索引。
正是因为主键索引这种数据结构特点,如果用户不指定主键,InnoDB会默认加上一个用户不可见的主键进行索引。

B+树数据结构特点:
1、节点可以重复(不同层).
2、除叶子层外,每层只保留索引特征(主键值及子节点指针),不保存表数据。
3、叶子层是真正放置表数据的容器,叶子节点就是表的主键。
这种特点被称之为聚簇索引。叶子节点存放的是表的行数据。
4、叶子节点之间通过链表链接。
图偷的,看个意思

B-树同样是一种多路查找树,但其与B+树的主要区别在于:
1、节点不能重复。
2、每个节点存放的内容包含三部分:
a、主键值。
b、子节点指针。
c、关键字(即行中部分数据)。
3、B-树节点通过关键字查找到主键值,再通过B+树间接找到主键叶子节点存贮的行数据。

继续凑合着看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值