gpt4 book ai didi

mysql - 在一个数据库列中设置两个索引

转载 作者:行者123 更新时间:2023-11-29 12:21:52 26 4
gpt4 key购买 nike

我正在使用 MySQL,但这个问题并不特定于该特定数据库。
我有 posts 表和 threads 表。
没什么复杂的,当然在 posts 中我有 thread_id 列,它将帖子与拥有它们的线程联系起来。
我想对该列进行外键约束(posts 表中的thread_id),例如:

  CONSTRAINT `thread_fk` FOREIGN KEY (`thread_id`) REFERENCES `threads` (`id`) ON DELETE CASCADE ON UPDATE CASCADE

所以问题是,在该 thread_id 列上添加第二个索引是否明智?
像这样:

KEY `thread_idx` (`thread_id`)

或者:

 INDEX `thread_idx` (`thread_id`)

在选择时,外键索引本身会加快速度吗?使第二个索引变得多余,或者第二个索引对于更快的选择是必要的,或者在一列上有两个索引是个坏主意?

最佳答案

我不确定您使用的是哪种 RDBMS,但通常外键不会创建索引。为外键涉及的列创建索引被认为是一个很好的做法。

但是您还应该考虑您尝试通过创建此索引来优化的查询。拥有包含同一列的多个索引不一定是坏事。

关于mysql - 在一个数据库列中设置两个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884491/

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