0
在MySQL中使用InnoDB存儲引擎時,如果在創建表時未指定PRIMARY KEY,而將隱藏唯一索引用作聚簇索引。由於數據字典上存在互斥鎖,我讀過這些隱藏的索引可能導致爭用。添加PK時隱藏的MySQL [InnoDB] PK會發生什麼?
我的問題是 - 如果我添加一個PRIMARY KEY到表中,隱藏的PK會發生什麼?
在MySQL中使用InnoDB存儲引擎時,如果在創建表時未指定PRIMARY KEY,而將隱藏唯一索引用作聚簇索引。由於數據字典上存在互斥鎖,我讀過這些隱藏的索引可能導致爭用。添加PK時隱藏的MySQL [InnoDB] PK會發生什麼?
我的問題是 - 如果我添加一個PRIMARY KEY到表中,隱藏的PK會發生什麼?
如果您將PRIMARY KEY
添加到表中,InnoDB將其用作集羣索引。
如果InnoDB的使用在非可空列作爲簇索引唯一索引,唯一索引將仍然存在,但它會成爲次要指數(當您添加主鍵。)
如果InnoDB的在合成行ID列上使用隱藏索引作爲集羣索引,則隱藏索引將被刪除(當您添加PRIMARY KEY時)。
你能提供任何文檔/鏈接嗎? – Gandalf
有一個明確的PK幾乎總是更好。 –
參考文獻:在網上搜索「jeremy cole innodb index」並閱讀前幾個鏈接。 –