我有一个包含大约10个表的MySQL数据库,其中大约6个表以这样或那样的方式相互链接。我的问题是,我应该在外键上指定索引吗?
谢谢
发布于 2011-06-17 23:28:02
在文档中:"InnoDB要求对外键和被引用的键建立索引,以便外键检查可以快速进行,而不需要表扫描。在引用表中,必须有一个索引,其中外键列以相同的顺序作为第一列列出。如果引用表不存在,则会自动在引用表上创建这样的索引。(这与某些旧版本不同,在这些版本中,必须显式创建索引,否则创建外键约束将失败。)如果给定了index_name,则按照前面所述的方式使用。“
来源:http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
发布于 2011-06-17 23:26:17
是的,如果基数足够高,你应该这样做。好的,刚才提到这是MySQL特有的问题。看起来是这样,当MySQL不存在时,您会自动创建一个索引。
然后,Gryphius的答案就更充分了。
https://stackoverflow.com/questions/6388008
复制相似问题