我应该在外键字段上指定INDEXES吗?

时间:2011-06-17 15:21:58

标签: mysql indexing

我有一个包含大约10个表的MySQL数据库,其中大约6个以某种方式相互链接。我的问题是,我应该在外键上指定INDEXES吗?

由于

2 个答案:

答案 0 :(得分:2)

来自文档: “InnoDB需要外键和引用键的索引,以便外键检查可以快速而不需要表扫描。在引用表中,必须有一个索引,其中外键列被列为同一顺序中的第一列如果它不存在,那么会自动在引用表上创建这样的索引。(这与某些旧版本形成对比,其中必须明确创建索引或创建外键约束失败。)index_name,如果给定,如前所述使用。“

来源:http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

答案 1 :(得分:1)

是的,如果基数足够高,你应该这样做。 好吧,刚才提到它是特定于MySQL的问题。似乎这样,当MySQL不存在时会自动创建索引。

格里菲斯的回答比较充分。