2015-06-16 48 views
0

在MySQL中使用InnoDB存儲引擎時,如果在創建表時未指定PRIMARY KEY,而將隱藏唯一索引用作聚簇索引。由於數據字典上存在互斥鎖,我讀過這些隱藏的索引可能導致爭用。添加PK時隱藏的MySQL [InnoDB] PK會發生什麼?

我的問題是 - 如果我添加一個PRIMARY KEY到表中,隱藏的PK會發生什麼?

回答

1

如果您將PRIMARY KEY添加到表中,InnoDB將其用作集羣索引。

如果InnoDB的使用在非可空列作爲簇索引唯一索引,唯一索引將仍然存在,但它會成爲次要指數(當您添加主鍵。)

如果InnoDB的在合成行ID列上使用隱藏索引作爲集羣索引,則隱藏索引將被刪除(當您添加PRIMARY KEY時)。

+0

你能提供任何文檔/鏈接嗎? – Gandalf

+0

有一個明確的PK幾乎總是更好。 –

+0

參考文獻:在網上搜索「jeremy cole innodb index」並閱讀前幾個鏈接。 –

相關問題