扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Schema的优化和索引 - 高性能的索引策略 - 聚簇索引4
那么col2是什么样子的?和上面的有什么区别?。其实没有任何区别。和其他索引也一样。
事实上,在MyISAM中,在主键和其他键的索引结构上并没有区别。一个主键就是唯一的,不能为NULL,并命名为PRIMARY的索引。
InnoDB 数据布局
InnoDB存储同样的数据,是和MyISAM不一样的,因为聚簇的结构。如图,InnoDB存储表。
乍看起来,并没有和上一张图有什么区别。但是再一看,这个示例显示的是整个表,而不仅仅是索引。因为聚簇索引在InnoDB中就是一张表。并不像MyISAM有独立的行存储。
在聚簇索引中的每个叶子节点都包含了主键,事物ID,用来MVCC和事务的回滚指针,还有就是剩下的列。如果主键在一个列的前缀上,InnoDB就包括这个列的值和剩下的所有的列。
相比较MyISAM,次要索引和聚簇索引也不是很相同。InnoDB次要索引的叶子节点包含了主键的值,就像指向行的指针一样。当移动行或者数据页的分裂,这个策略就会降低维护次要索引的工作量了。使用行的主键作为指针会使索引变大,但是也意味着InnoDB在移动行的时候不会更新指向这行的指针。
下面就是次要索引在col2的图
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者