【发布时间】:2021-08-25 16:28:01
【问题描述】:
当在 MySQL 表上放置外键约束时,MySQL 会自动添加索引以获得更好的性能。我对此完全没问题。这一切都在文档中。
但是,当删除外键时,我注意到自动创建的索引本身并没有被删除。这不在 de docs 中。我想知道:
- 它会被自动删除吗,因为 MySQL 也为我创建了它?
- 外键索引可以有多大?如果它只有几千字节,我不介意,但如果它变大了怎么办……?
https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html 只这么说:
MySQL 需要外键和引用键的索引,以便 外键检查可以很快并且不需要表扫描。在里面 引用表,必须有外键所在的索引 列按相同顺序列为第一列。这样一个 如果没有,则在引用表上自动创建索引 存在。如果您创建,此索引可能会在稍后被静默删除 另一个可用于强制外键约束的索引。 index_name,如果给定,则如前所述使用。
【问题讨论】: