[英]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.