聚集索引和二级索引
每个InnoDB
表都有一个特殊的索引,称为聚簇索引 ,用于存储行数据。通常,聚簇索引与主键同义 。为了从查询,插入和其他数据库操作中获得最佳性能,您必须了解如何InnoDB
使用聚簇索引为每个表优化最常见的查找和DML操作。
- 在
PRIMARY KEY
表上定义a 时,InnoDB
将其用作聚簇索引。为您创建的每个表定义一个主键。如果没有逻辑唯一且非空的列或列集,请添加一个新的 自动递增 列,其值将自动填充。 - 如果您没有
PRIMARY KEY
为表定义a ,则MySQL将UNIQUE
在所有键列所在的位置找到第一个索引,NOT NULL
并将InnoDB
其用作聚集索引。 - 如果表没有索引
PRIMARY KEY
或没有合适的UNIQUE
索引,则在InnoDB
内部生成一个隐藏的聚集索引GEN_CLUST_INDEX
,该索引在包含行ID值的合成列上命名 。这些行由In