为什么InnoDB为外键列添加索引

时间:2015-10-15 05:44:18

标签: mysql phpmyadmin

MySQL将外键添加到列时自动添加索引在带有innoDB引擎的MySQL中。主键足以搜索行,如何通过为外键列添加索引来影响性能。

先谢谢。

2 个答案:

答案 0 :(得分:0)

MySQL文档明确说明了here

背后的推理
  

MySQL要求外键和引用键上的索引   外键检查可以很快,不需要表扫描。在里面   引用表时,必须有一个索引所在的外键   列以相同顺序列为第一列。这样的   如果不是,则会自动在引用表上创建索引   存在。

有许多查询通常是连接,这些查询需要根据外键匹配行,而数据库必须找到这些行。该索引通常可以帮助您更快地完成此任务。

答案 1 :(得分:0)

如果要创建外键,则意味着此列将用于将数据与任何其他表引用列连接,因此可以理解此列上需要索引以便更好地加入。

由于这个原因,这个特性是在构建mysql外键概念。