MySQL 聚集索引和非聚集索引

MySQL 索引 面试 大约 365 字

聚集索引

聚集索引确定表中数据的物理顺序,每一行数据按照聚集索引物理上排序。

InnoDB存储引擎必须有且仅有一个聚集索引。

聚集索引存储的是这一行的数据本身(不是指针)。

必要要有聚集索引,并不代表一定要有主键。

  • 如果定义了主键,主键就是聚集索引。
  • 如果没有定义主键,第一个非空not null且唯一unique的列是聚集索引。
  • 如果没有符合的列,MySQL就会自动创建一个隐藏的row id作为聚集索引。

非聚集索引

除了聚集索引以外的索引都是非聚集索引,分成普通索引、唯一索引、全文索引。

非聚集索引就像新华字典的偏旁字典,它的结构顺序与实际存放顺序不一定一致。

非聚集索引存储的是这一行的数据的主键的值(也不是指针)。

非聚集索引二次查询问题

可使用MySQL的覆盖索引解决。

可参考之前文章:MySQL中的覆盖索引

阅读 79 · 发布于 2021-05-19

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

扫描二维码关注我
昵称:
随便看看 换一批