每个innodb的表都有个特殊的索引来存放数据-聚集索引。
当在表上指定主键后,innodb使用它来作为聚集索引。
如果没有定义主键,会找非空唯一索引来作为clustered index
如果上面2个都没有,那么会在内部生成一个隐藏的clustered index
通过一个clustered index访问行是很快的,因为索引包含全部数据的页。
所有的非clustered index都是二级索引,innodb中,每个二级索引的记录中包含了行的主键列,innodb使用这个值去clustered index中搜索行。
聚集索引和二级索引
原创
©著作权归作者所有:来自51CTO博客作者aoerqilengbai的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:mysql死锁几种情况的测试
下一篇:Mysql优化
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
聚集索引和非聚集索引一级索引和二级索引
作者:小歪同学问题聚簇索引存储结构是如何的?二级索引存储结构又如何?什么是覆盖索引?怎么判断能不能用到索引?准备 CREATE 什么是聚簇索引和二级索引book表中,我们创建了3个索引,id 主键索引, idx_name 和 idx_author_name 2个非主键索引。从定义来讲,主键索引就是聚簇索引,而非主键索引就是二级索引。一般情况下所有都是B+TREE结构的,除非特别指
mysql 聚簇索引和非聚簇索引 mysql创建聚簇索引 使用的select语句具有不同的列数 聚簇索引和非聚簇索引的区别