gpt4 book ai didi

postgresql - 冲突(主键)上的 postgres 9.5+ 是否比不存在的地方更快?

转载 作者:行者123 更新时间:2023-11-29 11:39:29 25 4
gpt4 key购买 nike

假设您有如下任何插入查询 -

insert into abc select * from def dd where not exists (select 1 from abc aa where aa.id = dd.id);

对比

insert into abc select * from def dd on conflict(id) do nothing;

哪个更快?

两个表都非常大,如果与主键冲突则不插入

最佳答案

哪个更快并不重要。实际上,两者应该非常具有可比性,因为两者都将使用唯一索引查找值。

更重要的是 NOT EXISTS 在语义上是不正确的。竞争条件可能会导致两个查询都失败 NOT EXISTS 。 . .然后两者都会尝试插入相同的值。

因此,为了安全起见,我强烈建议使用ON CONFLICT 公式。它确保数据库保证数据的一致性。

关于postgresql - 冲突(主键)上的 postgres 9.5+ 是否比不存在的地方更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40609106/

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