InnoDB索引实现(聚集)
表数据文件本身就是按B+Tree组织的一个索引结构文件;
聚集索引-叶节点包含了完整的数据记录;
为什么InnoDB表必须有主键,并且推荐使用整型的自增主键?
Mysql在设计的时候,InnoDB的表必须必须用B+树来组织。如果我们没有设置主键或者索引,mysql会在后台为这张表生成一列唯一的数据,有点类似于我们说的rowid字段,它是一个整型字段(1,2,3,. . .),这一列数据我们看不到。推荐整型的话是因为整型数字大小的比较比字符串的比较要快,试想一下两个UUID作比较和两个数字作比较。
为什么非主键索引结构叶子节点存储的是主键值?(一致性和节省存储空间)
在mysql数据库,如果某张表的索引是InnoDB,通过查看磁盘data文件夹里面的文件我们可以看到这张表对应的有两个文件:表名.frm和表名.ibd
同样的,.frm文件存放的是表结构的文件,而.ibd文件则是数据文件和索引文件的合并。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




