vfclists Asked: 2016-03-22 16:06:02 +0800 CST2016-03-22 16:06:02 +0800 CST 2016-03-22 16:06:02 +0800 CST 在 Postgres 列上创建唯一约束是否消除了对其编制索引的需要? 772 在 Postgres 列上创建唯一约束是否消除了对其编制索引的需要? 我希望自动需要一个索引来有效地维护约束。 database-design postgresql 1 个回答 Voted Best Answer Erwin Brandstetter 2016-03-22T16:08:16+08:002016-03-22T16:08:16+08:00 是的。UNIQUE约束是在唯一索引的帮助下实现的——一个在所有相关列上具有默认升序排序的 b 树索引。该索引是自动创建和维护的,用于所有用途,例如 Postgres 的普通唯一索引。 没有必要创建另一个(冗余的)唯一索引,那样会浪费资源。 详细解释: PostgreSQL 如何强制执行 UNIQUE 约束/它使用什么类型的索引? 当需要具有运算符类的索引时,唯一索引是否优于唯一约束 一些罕见的例外适用于具有特殊排序选项的多列索引: 优化对一系列时间戳(两列)的查询
是的。
UNIQUE
约束是在唯一索引的帮助下实现的——一个在所有相关列上具有默认升序排序的 b 树索引。该索引是自动创建和维护的,用于所有用途,例如 Postgres 的普通唯一索引。没有必要创建另一个(冗余的)唯一索引,那样会浪费资源。
详细解释:
一些罕见的例外适用于具有特殊排序选项的多列索引: