在InnoDB存储引擎中,根据索引的存储形式,又可以分为以下两种:
聚集索引选取规则:
➢ 如果存在主键,主键索引就是聚集索引。
➢ 如果不存在主键,将使用第一个唯一(UNIQUE)索引作为聚集索引。
➢ 如果表没有主键,或没有合适的唯一索引,则InnoDB会自动生成一个rowid作为隐藏的聚集索引。
下图为例:
聚集索引:叶子节点下存放的是一行的数据
二级索引:存放的是name元素的id
提高题:
InnoDB主键索引的B+tree高度为多高呢?
假设:
一行数据大小为1k,一页中可以存储16行这样的数据。InnoDB的指针占用6
个字节的空间,主键即使为bigint,占用字节数为8。
高度为2:
n 8 + (n + 1) 6 = 161024 , 算出n约为 1170
1171 16 = 18736
高度为3:
1171 1171 16 = 21939856