2014-04-23 118 views
1

我一直想知道這一段時間了。當您使用MySQL Workbench在兩個表(假設A和B)之間創建一個n:m關係時,結果表(假設爲A_B)有三個索引(主鍵,A的主鍵和B的主鍵)。爲什麼MySQL Workbench在n:m關係上創建兩個索引?

根據this question PRIMARY KEY總是索引自己,所以爲什麼需要用奇異索引再次索引每個奇異域? 另外,如果這是MySQL的政策,它是否與其他DBMS不同?

回答

0

在關係數據庫中,在外鍵關係中涉及的列上有索引是一個很好的經驗法則,因爲大多數情況下,您的sql查詢將基於這些列連接表。

我的猜測是,工作臺遵循該經驗法則,但不夠聰明,看到在其中一列是Pk的情況下,索引已經存在。

所以它只是每列添加一個索引,並不檢查其中一列是否也是主鍵。 (pk列不一定是外鍵關係的一部分)

相關問題