MySQL 聚集索引和非聚集索引

MySQL 索引 面试 About 365 words

聚集索引

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

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

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

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

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

非聚集索引

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

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

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

非聚集索引二次查询问题

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

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

Views: 1,815 · Posted: 2021-05-18

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

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

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


Today On History
Browsing Refresh