Java OpenResty Spring Spring Boot MySQL Redis MongoDB PostgreSQL Linux Android Nginx 面试 算法 小程序 Arthas JVM juc AQS Docker DevOps


MySQL 聚集索引和非聚集索引

MySQL 索引 面试 大约 365 字

聚集索引

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

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

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

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

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

非聚集索引

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

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

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

非聚集索引二次查询问题

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

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

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

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb

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

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