【发布时间】:2010-12-15 20:43:17
【问题描述】:
我正在使用 phpMyAdmin。为了使用 InnoDB 设置外键约束(在“结构”选项卡上的“关系视图”链接下),看来我需要为要添加约束的字段添加索引。这显然会对表上的插入/更新性能产生影响,特别是如果我想添加几个约束。是否可以在 InnoDB 中指定外键约束或关系完整性而不需要为所需字段创建索引?
非常感谢 JS,伦敦
【问题讨论】:
标签: mysql foreign-keys innodb
我正在使用 phpMyAdmin。为了使用 InnoDB 设置外键约束(在“结构”选项卡上的“关系视图”链接下),看来我需要为要添加约束的字段添加索引。这显然会对表上的插入/更新性能产生影响,特别是如果我想添加几个约束。是否可以在 InnoDB 中指定外键约束或关系完整性而不需要为所需字段创建索引?
非常感谢 JS,伦敦
【问题讨论】:
标签: mysql foreign-keys innodb
外键约束将一个键指向另一个键。外键也是索引。
所以是的,您需要索引列(具有唯一性或外键)以在外键约束中使用它们。
有 3 种类型的索引可用:
- 主键
- 唯一索引
- 非唯一索引
【讨论】:
InnoDB 需要外部索引 键和引用的键,以便 外键检查可以快速而不是 需要表扫描。在里面 引用表,必须有一个 外键列的索引 被列为第一列 相同的顺序。创建了这样的索引 自动在参考表上 如果它不存在。 (这是在 与一些旧版本相比,在 必须创建哪些索引 明确或创建外国 关键约束会失败。)
【讨论】: