请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于B/B+树和聚簇索引和非聚簇索引的问题

CC老师,想问下我的这个结论正不正确?

结论:
B树可以实现聚簇索引和非聚簇索引
B+树只能实现聚簇索引

原因推导:

B树:
B树的节点存储的是数据,这个数据可以是指针,也可以是真实的记录
当节点存储的数据都是真实的记录时,实现的就是聚簇索引;
当节点存储的数据都是指针时,实现的就是非聚簇索引;

B+树:
B+树的非叶子节点存储的数据是指针,叶子节点存储的数据是真实记录,而聚簇索引需要叶子节点都是真实记录,所以B+树只能实现聚簇索引

网上搜了一圈,都没找到答案,都是分别比较B/B+树,聚簇索引和非聚簇索引的区别。。
而且文章感觉都是互相抄袭,我分不清谁的是对的了,,

正在回答 回答被采纳积分+3

1回答

ccmouse 2021-11-29 21:17:20

B树和B+树都是数据结构,它们管理了键值对。每个节点都有键->值的对应关系,我们通过键来排列子节点的顺序。对于数据库记录来说,键就是主键,值的话,在聚簇索引的实现中,值就是记录本身。

B+树能不能实现非聚簇索引?能,只要这颗B+树的每个节点的值是记录的指针即可。

B树能否实现聚簇索引? 比较困难,因为这样的话,这个表的记录的存储位置在物理上就不连续。我们顺序访问的话,就要涉及从叶子结点向根节点寻找的过程,这样的做法本身也不够优化。如果是判断题或者选择题,我倾向于认为不能。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信