gpt4 book ai didi

mysql - 多列索引结合唯一索引效率

转载 作者:行者123 更新时间:2023-11-30 01:20:10 24 4
gpt4 key购买 nike

我们有一个包含多个列的表,并且我们的其中一个列上有一个 UNIQUE 索引(我们称之为 GBID),并且我们还有另一列(我们称其为flag),它没有任何标记。这个表可能相当大,我们查询WHERE gbid IN () AND flag = 1 很多,我们偶尔查询WHERE gbid = "XXX" 并且很少查询 WHERE flag = 1

在索引方面哪个更有效:

  1. gbid 设为 UNIQUEflag 且无索引
  2. gbid 设为 UNIQUE,并为 (gbid, flag) 建立多列索引
  3. gbid 设为 UNIQUE 并具有 (flag, gbid) 的多列索引

最佳答案

这取决于 flag=1 的行的百分比,以及您选择的行数(IN 子句中有多少个 gbid)。

  • 如果它较低(1-2%)并且您选择了很多 gbid,则选项 2 和 3 可能会更快(我认为在这种情况下选项 3 会更好)。
  • 如果标志值分布更均匀,将其包含在索引中不会产生任何影响。

如果您想确定,应该使用真实数据样本对其进行基准测试。

关于mysql - 多列索引结合唯一索引效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18640070/

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