如果我有2张桌子
user
-----------------
id integer PK
name varchar
address
----------------
id integer PK
user_id integer
city varchar
现在,如果在user.id< - >之间存在一对多外键。 adress.user_id 还需要在user_id列中创建索引以加速选择查询?
或者因为我创建了一个外键,我还隐式创建了一个索引,该索引将从dmbs中用于加速查询?
答案 0 :(得分:0)
索引为created automatically when creating an FK:
如果已经显式,则忽略index_name值 子表上定义的索引可以支持外键。 否则, MySQL会隐式创建一个名为的外键索引 根据以下规则......
答案 1 :(得分:0)
见本文:http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
InnoDB允许外键引用任何索引列或组 列。但是,在引用的表中,必须有一个索引 引用列列出的位置作为第一列 同样的顺序。
因此该表上有一个索引