person_info_large表为什么有聚集索引和稀疏索引?

来源:3-8 索引额外的问题之如何调优Sql

chaud123

2019-03-05

explain select count(id) from persion_info_large;
执行上面这句sql后,为什么说person_info_large表有聚集索引和稀疏索引?InnoDB不是只会建立密集索引吗?听不太明白

写回答

1回答

翔仔

2019-03-05

同学好,innodb的表的数据组织是按照聚集索引的组织方式组织的,和咱们业务相关的记录都保存在了叶子节点。

如果一个主键被定义了,那么这个主键就是作为聚集索引

如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚集索引

如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚集索引,这个隐藏的主键是一个6个字节的列,改列的值会随着数据的插入自增。

但是,表最多只有一个聚集索引,其他索引都是稀疏索引。

1
2
翔仔
回复
MComposer
同学好,聚集索引=密集索引哈,都可以的
2019-05-08
共2条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8441 学习 · 1872 问题

查看课程