Fra*_*hey 5 postgresql unique-constraint
假设如下表:
CREATE TABLE zoo (
cage INTEGER,
animal TEXT,
);
Run Code Online (Sandbox Code Playgroud)
以下之间是否存在真正有效的区别:
ALTER TABLE zoo ADD CONSTRAINT x EXCLUDE USING gist (cage WITH =, animal WITH =)
Run Code Online (Sandbox Code Playgroud)
和:
CREATE UNIQUE INDEX ON zoo(cage, animal)
Run Code Online (Sandbox Code Playgroud)
?
我在排除约束的作者的博客上读到了这篇文章:
\n\nDROP TABLE IF EXISTS a;\nCREATE TABLE a(i int);\nALTER TABLE a ADD EXCLUDE (i WITH =);\nRun Code Online (Sandbox Code Playgroud)\n这与 ai 上的 UNIQUE 约束相同,只是它使用排除约束机制;它甚至使用普通的 BTree 来强制执行。由于对 UNIQUE 约束进行了一些微优化,性能会稍微差一些,但只是轻微优化,并且性能特征应该是相同的(it\xe2\x80\x99s 一样可扩展)。最重要的是,它在高并发下的行为与 UNIQUE 约束相同,因此您不必担心过度锁定。如果一个人插入5,会阻止其他事务同时插入5,但不会干扰插入6的事务。
\n这或多或少回答了这个问题。
\n| 归档时间: |
|
| 查看次数: |
2443 次 |
| 最近记录: |