【问题标题】:Why does MySQL Workbench create two indexes on a n:m relation?为什么 MySQL Workbench 在 n:m 关系上创建两个索引?
【发布时间】:2014-04-23 22:44:58
【问题描述】:

我一直在想这个问题。当您使用 MySQL Workbench 在两个表(假设 A 和 B)之间创建 n:m 关系时,结果表(假设 A_B)具有三个索引(PRIMARY,一个在 A 的主键上,一个在 B 的主键上)。

根据this question PRIMARY KEY 总是自己索引,那么为什么需要用一个奇异索引再次索引每个奇异字段呢? 另外,如果这是 MySQL 的策略,它与其他 DBMS 有什么不同吗?

【问题讨论】:

    标签: mysql database mysql-workbench


    【解决方案1】:

    在关系数据库中,在涉及外键关系的列上建立索引是一个很好的经验法则,因为大多数情况下,您的 sql 查询将基于这些列连接表。

    我的猜测是,工作台遵循该经验法则,但不够聪明,无法在其中一列是 Pk 的情况下看到索引已经存在。

    所以它只是为每列添加一个索引,而不检查其中一列是否也是主键。 (pk 列不必是外键关系的一部分)

    【讨论】:

      猜你喜欢
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 2011-08-22
      • 1970-01-01
      • 2012-06-01
      相关资源
      最近更新 更多