mysql 聚集索引和非聚集索引

通常我们说的索引大致分为两类,聚集索引和非聚集索引,非聚集索引也就是常用的普通索引,包括(唯一索引,全文索引等)

(以下讨论的 是mysql innodb引擎 )

聚集索引

聚集索引也叫聚簇索引,参考 https://www.cnblogs.com/shanshanlaichi/p/6568097.html

博文中的比喻

一个表就像是我们以前用的新华字典,聚集索引就像是拼音目录,而每个字存放的页码就是我们的数据物理地址,我们如果要查询一个“哇”字,我们只需要查询“哇”字对应在新华字典拼音目录对应的页码,就可以查询到对应的“哇”字所在的位置,而拼音目录对应的A-Z的字顺序,和新华字典实际存储的字的顺序A-Z也是一样的,如果我们中文新出了一个字,拼音开头第一个是B,那么他插入的时候也要按照拼音目录顺序插入到A字的后面

非聚集索引,索引的逻辑顺利和磁盘上的逻辑顺序不同

就像字典中的按偏旁来查找字,偏旁的顺序和字所在页数上的顺序并不相同

比喻很生动,关于这两个索引的信息也可以参考这篇博文

一个表中,只能有一个聚集索引,可以有多个非聚集索引,mysql 通常把一个表的主键作为聚集索引

关于聚集索引和非聚集索引的查找效率上,大致差不多,但是由于聚集索引是物理上的相对顺序,所以连续记录的查找上,聚集索引稍快,平常使用二者速度大致

你可能感兴趣的:(mysql 聚集索引和非聚集索引)