gpt4 book ai didi

sql - MySQL 中的两个单列索引与一个两列索引?

转载 作者:IT老高 更新时间:2023-10-28 12:51:13 26 4
gpt4 key购买 nike

我面临以下问题,我不确定最佳做法是什么。

考虑下表(它会变大):

ID PK | giver_id FK |收件人 ID FK |日期

我正在使用 InnoDB,据我了解,它会自动为两个外键列创建索引。但是,我也会做很多查询,我需要匹配以下特定组合:

SELECT...WHERE giver_id = x AND recipient_id = t

每个这样的组合在表中都是唯一的。

在这些列上添加两列索引是否有任何好处,或者理论上两个单独的索引是否足够/相同?

最佳答案

如果您有两个单列索引,则在您的示例中只使用其中一个。

如果您有一个包含两列的索引,则查询可能会更快(您应该衡量)。两列索引也可以用作单列索引,但仅适用于首先列出的列。

有时在 (A,B) 上有一个索引,在 (B) 上有另一个索引会很有用。这使得使用其中一列或两列的查询速度更快,但当然也会占用更多磁盘空间。

在选择索引时,还需要考虑插入、删除和更新的效果。更多索引 = 更慢的更新。

关于sql - MySQL 中的两个单列索引与一个两列索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349817/

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