2014-04-23 81 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列不一定是外键关系的一部分)

相关问题