MySQL-聚集索引与非聚集索引

数据库中B+树索引可分为聚集索引非聚集索引,不管是索引是否聚集,内部都是B+树,叶子节点存放着所有的数据。聚集索引与非聚集索引的不同在于叶子结点存放的是否是一整行的信息。
1.聚集索引
数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。
聚集索引就是按照每张表的主键构造一棵B+树,同时叶子结点存放的即为整张表的行记录数据,也将聚集索引的叶子结点称为数据页。
在这里插入图片描述
数据页上存放的是完整的每行记录,非叶子结点的数据页存放的是键值和指向数据页的偏移量,不是完整的行记录。数据行的物理顺序与列值的顺序相同,页之间与行之间都是通过双向链表进行维护的。注:聚集索引的存储并不是物理上连续的,而是逻辑上连续的。
2.非聚集索引
叶子节点并不包含行记录的全部数据,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。
在这里插入图片描述
每张表上可以有多个非聚集索引,当使用辅助索引来查找数据时,数据库引擎先通过遍历辅助索引查找到叶节点上的指针,通过指针得到指向主键索引的主键,再通过主键索引来查找一个完整的行记录。
我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值