【问题标题】:Multiple unique constraint performance多重唯一约束性能
【发布时间】:2022-11-11 00:32:45
【问题描述】:

想象一下,我们有那些没有主键的表:

CREATE TABLE test (
  name1 INT,
  name2 INT,
  name3 INT,
  
  UNIQUE (name1, name2, name3)
);
CREATE TABLE test2 (
  name1 INT,
  name2 INT,
  name3 INT,
  
  UNIQUE (name1, name2)
);

我觉得这两张表在某种程度上完全相同,我不确定组合是否相同。如果你知道组合的诀窍,我会很高兴知道它。

在性能的情况下,在 2 列上添加唯一约束和在 5 或 6 列上添加唯一约束是否相同?我想我们只是为每个约束添加一个指针?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    每个唯一的 SQL 约束都转换为存储在系统表中的定义(这些系统表的集合形成所谓的 CATALOG),但也转换为加快验证此唯一性的索引。索引中的列数作为信息的长度对这个检查的持续时间影响很小,因为搜索算法是对数的......

    在您的情况下,性能差异可以忽略不计

    【讨论】:

      猜你喜欢
      • 2012-01-20
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      相关资源
      最近更新 更多