2015-11-11 203 views
1
  1. primary keymysql數據庫表列的約束是否自動錶示在給定列上創建了索引?
    1. 如果是這樣,我們可以將它推廣到任何數據庫,還是僅僅依賴於數據庫實現?
    2. 如果是這樣,並且如果主鍵是複合的,是否有索引創建每每個這樣的列?
  2. 它使任何意義創建(附加?)在列已經作爲primary key通過key約束指標?

回答

1
  1. 在MySQL伯或UNIQUE KEY上創建在約束定義的列的索引。如果有多個列,則會創建一個組合索引。

    如果它的InnoDB表PRIMARY KEY也成爲該表的聚集索引。

  2. 使用與PRIMARY/UNIQUE相同的定義添加其他索引是沒有意義的。

對於其他RDBMS,這些約束將需要索引。即使您可以在沒有適當索引的情況下創建約束,也需要獲得任何合理的性能。