主键索引和非主键索引在B+树上的区别

主键索引基于主键列创建,键值唯一,叶节点存储完整数据,能直接定位记录。非主键索引键值可重复,叶节点存储主键值和指针,需通过主键索引定位。B+树的叶节点按主键顺序排序,支持范围查询。

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

主键索引

定义

主键索引是基于表的主键列构建的索引。主键是唯一标识表中每一行记录的列,因此主键索引的键值是唯一的。

叶子节点中存储整行记录数据

主键索引在B+树的叶节点上存储整行记录的数据。

这意味着通过主键索引可以直接定位到具体的记录数据,因为主键是唯一的,所以查找速度非常快。

叶子节点的排序顺序按主键顺序排列

B+树的叶节点按照主键的顺序进行排序,这样可以支持范围查询,即根据主键的大小范围快速检索数据。

非主键索引

定义

非主键索引是基于表的非主键列(或多列)构建的索引。非主键索引的键值可以包含重复值。

叶子节点中不存储整行记录数据

非主键索引的叶节点不存储整行记录的数据,而是存储了对应记录的主键值和指向记录的指针(或称为RID)。

通过非主键索引可以先定位到主键值,再通过主键索引定位到具体记录。

非主键索引的键值顺序与索引列的排序顺序有关

单列索引

按照索引列的排序顺序进行排序。

多列索引

按照多列索引,按照第一列排序,当第一列的值相同时,再按照第二列排序,以此类推。

总结

主键索引和非主键索引在B+树上的区别在于叶节点的存储方式和索引的键值唯一性。

主键索引可以直接定位到记录数据,键值唯一。

而非主键索引需要通过主键索引进一步定位,键值可以重复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值