gpt4 book ai didi

mysql - 我应该为每个外键创建索引吗?

转载 作者:行者123 更新时间:2023-11-29 07:48:23 25 4
gpt4 key购买 nike

我的表部门有两列(dept_ID 和 dept_name)我的另一个表是登录,我为引用表部门的部门名称的列部门名称创建外键。所以我创建了一个名为index_department的索引,现在在登录表中,我想为eadd列创建另一个外键,它将引用名为info_table的不同表。

我应该为第二个外键创建另一个索引吗?

另一个场景,我也想在 info_table 中创建一个 dept_name 列。我可以使用相同的索引“index_department”吗??

最佳答案

一般答案是“这取决于情况。”

正如 @gordon-Linoff 评论的那样“您创建索引是为了满足查询的性能要求。”

索引会占用空间并占用处理时间,因为必须进行维护。因此,任何给定索引的情况取决于成本和使用之间的权衡。例如,如果您的数据很少更改,但您经常查找数据,您会更喜欢拥有更多索引。

我有根据的猜测是,就您可能正在工作的规模而言,您确实希望所有外键上都有索引。

具体来说,在 mysql 中,您似乎获得索引是您正式添加 FK 约束。此处讨论 does mysql index foreign key columns automatically

我这么说是正式的,因为您可以隐含外键关系,而无需实际声明/强制执行约束。人们有时这样做是为了避免检查/执行约束的成本。风险在于违反引用完整性的更新。但我已经偏离正题了。

作为旁注,这里有一些相关的讨论 does a foreign key automatically create an index

关于mysql - 我应该为每个外键创建索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27128790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com