首页 > 数据库 > MySQL > MySQL innodb如何选择一个聚簇索引
对于innodb,主键毫无疑问是一个聚簇索引。但是当一个表没有主键,或者没有一个索引,innodb会如何处理呢。请看如下规则:
如果一个主键被定义了,那么这个主键就是作为聚簇索引
如果没有主键被定义,那么该表的第一个唯一非空索引被作为聚簇索引
如果没有主键也没有合适的唯一索引,那么innodb内部会生成一个隐藏的主键作为聚簇索引,这个隐藏的主键是一个6个字节的列,该列的值会随着数据的插入自增。
注意的地方:
二级索引的叶子节点并不存储行数据的物理地址。而是存储的该行的主键值。
所以:二级索引包含了两次查找。一次是查找次级索引自身。然后查找主键(聚簇索引)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15498/viewspace-2216192/ ,如需转载,请注明出处,否则将追究法律责任。