摘要 本文基于MySQL5.7为基础,讨论与数据库索引相关的一些内容。MySQL是一个支持多存储引擎插件的数据库,各种引擎已插件的方式接入,而各种存储引擎对索引的支持各不相同。本文只讨论InnoDB的B+Tree索引,因为这是MySQL引用最广泛的索引,至于哈希索引和全文索引本文暂不讨论。 聚集索引和二级索引 每个InnoDB表都有一个特殊的索引,称为聚集索引(有的翻译为聚簇索引) ,用于存储行数据,通常与主键是一个意思。为了从查询中获取最佳的性能,必须了解使用聚集索引优化查询: 为每个表定义主键。如果没有逻辑唯一且非空的列或列集,请添加一个自动递增列作为主键。 如果表没有定义主键,MySQL