gpt4 book ai didi

MySQL:唯一约束多列性能优化

转载 作者:可可西里 更新时间:2023-11-01 08:37:21 27 4
gpt4 key购买 nike

我在多个问题上看到大量关于独特约束的问题,但没有一个与我特别寻找的相符。如果这是一个副本,我很抱歉。

我有一张 table :表A_id表B_id

我的主键是两个表的唯一约束,并且我在两个列上都有一个索引。两者也是它们受尊重的表的主键。

如果表 A 可能有 10,000,000 行,而表 B 有 2,000,000 行,则表 B 受此约束的次数可能要少得多。令人难过的是,当我制定唯一约束将 TableB 作为第一列时,它是否更优化,因为要搜索的东西更少,TableA(如果是这样,为什么),或者它没有区别,因为它不先搜索一个然后另一个,一个一个地看。

提前致谢

最佳答案

通常建议将具有更多不同值的列放在组合索引的左侧。这会产生更具选择性的索引,这更适合查找特定值。

报价表 MySQL docs :

To eliminate rows from consideration. If there is a choice between multiple indexes, MySQL normally uses the index that finds the smallest number of rows (the most selective index)

但我的印象是您似乎在尝试优化表插入失败。如果您对表的写入多于读取,并且大部分写入都是重复的,那么您可能是对的。但即使在后一种情况下,MySql 也需要检查其他列的唯一性。因此,最好先放置一个具有更多不同值的列。

关于MySQL:唯一约束多列性能优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8511251/

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