繁体   English   中英

外键可以使用唯一索引吗?

[英]Can a foreign key use unique index?

我在列上创建了唯一索引,然后使用ALTER TABLE添加了外键。 MySQL在我的唯一索引之上为该列添加了一个非唯一索引。 非唯一索引是否必要? 它以任何方式加快了速度吗?

Does it speed things up in any way?

首先,索引并不总是能够加快速度。 索引正在减慢更新,插入和删除语句的速度,因为索引必须与数据一起更新。

其次,在某些情况下,mysql优化器可能会决定使用错误的索引,而使用另一个索引可能会更快。

Is the non-unique index necessary?

否。如果您反过来也可以查看有关您的用例的mysql文档:

http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

MySQL需要在外键和引用键上建立索引,以便外键检查可以快速进行,而无需进行表扫描。 在引用表中,必须有一个索引,其中外键列以相同的顺序列为第一列。 如果这样的索引不存在,则会在引用表上自动创建。 如果您创建另一个可用于强制外键约束的索引,则以后可能会静默删除该索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM