簡體   English   中英

為什么MySQL Workbench會在一個:m關系上創建兩個索引?

[英]Why does MySQL Workbench create two indexes on a n:m relation?

我一直想知道這已經有一段時間了。 當您使用MySQL Workbench在兩個表(比如說A和B)之間創建一個:m關系時,結果表(比如說A_B)具有三個索引(PRIMARY,一個在A的主鍵上,一個在B的主鍵上)。

根據這個問題, PRIMARY KEY總是自己索引的,那么為什么需要再次用奇異索引來索引每個奇異字段呢? 另外,如果這是MySQL的策略,那么與其他DBMS是否不同?

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

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

因此它只為每列添加一個索引,而不檢查其中一列是否也是主鍵。 (pk列不必是外鍵關系的一部分)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM