在 MySQL 的索引体系中,聚集索引和非聚集索引是非常重要的概念。聚集索引基于主键创建,它不仅仅是一种索引类型,更代表着一种数据的存储方式。在 InnoDB 存储引擎里,一张表的数据对应的物理文件是按照 B + 树来组织的索引结构,而聚集索引就是按照每张表的主键构建的 B + 树,叶子节点存储了表的每一行数据记录 。这就意味着每个表必须有一个主键,如果没有,InnoDB 会默认选择或添加一个隐藏列作为主键索引来存储数据行。通常建议使用自增 id 作为主键,因为自增 id 具有连续性,能使对应的数据按顺序存储在磁盘上,从而提升写入和检索性能。而像 uuid 这种随机 id,在频繁插入数据时,会导致随机磁盘 IO,性能较低。