2015-11-11 143 views
1
  1. primary keymysql数据库表列的约束是否自动表示在给定列上创建了索引?
    1. 如果是这样,我们可以将它推广到任何数据库,还是仅仅依赖于数据库实现?
    2. 如果是这样,并且如果主键是复合的,是否有索引创建每每个这样的列?
  2. 它使任何意义创建(附加?)在列已经作为primary key通过key约束指标?

回答

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

    如果它的InnoDB表PRIMARY KEY也成为该表的聚集索引。

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

对于其他RDBMS,这些约束将需要索引。即使您可以在没有适当索引的情况下创建约束,也需要获得任何合理的性能。