gpt4 book ai didi

PostgreSQL - 是否可以并行化更新?

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

我正在运行影响数百万行的 UPDATE,这非常耗时。有没有办法在 PostgreSQL 中将其并行化?

我对此进行了研究,但一无所获,但我有几个想法正在考虑中。

1) PostgreSQL 会自动执行此操作吗?如果是,那就太好了。

2) 如果 PostgreSQL 不支持这个,可以打开多个并发连接并并行执行更新,但要确保更新不会影响相同的行(查询之间没有重叠数据共享)?我担心的是 PostgreSQL 强制每个 UPDATE 成为一个原子事务并且不允许并发更新,即使它们影响不同的行。我的担心是否正确?

提前致谢,詹姆斯。

最佳答案

My worry is that PostgreSQL forces every UPDATE to be an atomic transaction and won't allow concurrent updates even if they affect different rows.

让我们测试一下

create table test(
id int,
name text
);

insert into test
values
(1, 'a'),
(2, 'b');

然后运行这个事务:

do $$
begin
update test set
name = 'aa'
where id = 1;

perform pg_sleep(15);
end;
$$ language plpgsql

然后运行这个,作为另一个事务

do $$
begin
update test set
name = 'bb'
where id = 2;
end;
$$ language plpgsql

第二个事务立即运行,而第一个事务仍在运行。

关于PostgreSQL - 是否可以并行化更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524873/

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