我在列上创建了一个唯一索引,然后使用ALTER TABLE添加了一个外键。 MySQL在列的唯一索引之上添加了一个非唯一索引。是否需要非唯一索引?它会以任何方式加快速度吗?
答案 0 :(得分:1)
Does it speed things up in any way?
首先,索引并不总能加快速度。索引会降低update,insert和delete语句的速度,因为索引必须与数据一起更新。
其次,有些情况下,mysql-optimizer可能会决定使用错误的索引,而使用另一个Index可能会更快。
Is the non-unique index necessary?
没有。另请参阅有关您的用例的mysql文档,如果您反过来这样做:
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
MySQL要求外键和引用键上的索引 外键检查可以很快,不需要表扫描。在里面 引用表时,必须有一个索引所在的外键 列以相同顺序列为第一列。这样的 如果不是,则会自动在引用表上创建索引 存在。 如果您创建,可能会稍后以静默方式删除此索引 另一个可用于强制执行外键约束的索引。