Reindex复合主键

时间:2013-01-27 21:10:08

标签: mysql

创建多对多关系时,索引已用作复合主键的2个字段是否正确?

PRIMARY KEY (`lineup_id`, `term_id`) ,
INDEX `lineup_id1_idx` (`lineup_id` ASC) ,
INDEX `term_id1_idx` (`term_id` ASC) ,

MySQL Workbench添加了lineup_idterm_id的重建索引,因为我将它们标记为外键。在这种情况下,我是否仍然将它们标记为外键?

2 个答案:

答案 0 :(得分:0)

您应该执行此操作的唯一时间是,如果您的查询使用复合键的第二列,则索引从左向右工作。否则,您应该使用单个复合键。或者,您可以创建代理键。

答案 1 :(得分:0)

如果您需要lineup_idterm_id的索引,则只能添加INDEX term_id1_idx (term_id ASC),PK也适用于lineup_id。并且还要考虑njk个建议。