数据库中聚集索引是否存储了真实数据
索引是一种数据结构,b+树的叶子节点中存放的是指向实际行的指针。
那么聚集索引呢,InnoDB 的聚簇索引在同一个结构中保存了 B+Tree 索引和数据行,这句话是什么意思?
是不是说非聚集索引叶子节点中的指针指向的就是聚集索引中存放的数据行
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
InnoDB聚集索引是按照主键(primary key)进行聚集的,每张表只能有一个聚集索引,表数据文件本身就是按B+Tree组织的一个索引结构,叶子节点的data域保存了完整的数据记录;所以说,InnoDB表数据文件本身就是主索引文件,也就是你刚刚说的“同一个结构中保存了 B+Tree 索引和数据行”。聚集索引的方式会使根据主键的范围查找和排序非常快(参考聚集索引的数据结构)。
InnoDB辅助索引的实现方式是所有辅助索引都引用主键作为data域,因此辅助索引搜索需要检索两次索引才能获得数据记录,但是这样辅助索引的变更会很方便(不会影响根据主索引组织的数据文件本身),同时因为所有的辅助索引都引用主索引,不建议主索引过大。