主键是否也是索引?

4
  1. mysql数据库表的primary key约束是否自动意味着在指定列上创建了索引?
    1. 如果是这样,我们能否将其概括为任何数据库或者它只取决于数据库实现?
    2. 如果是这样,并且如果主键是复合的,则每个这样的列都会创建一个索引吗?
  2. 对于已经是primary key的列,通过key约束创建(额外)索引是否有意义?
2个回答

4
  1. 在MySQL中,PRIMARY或UNIQUE KEY会在约束中定义的列上创建索引。如果有多个列,则创建一个组合索引。

    如果是InnoDB表,则PRIMARY KEY也成为该表的聚簇索引。

  2. 添加与PRIMARY/UNIQUE相同定义的其他索引是没有意义的。

对于其他RDBMS,这些约束需要索引。即使允许创建不带适当索引的约束,但需要索引才能获得任何合理的性能。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接