gpt4 book ai didi

sql - 缓慢同时写入 PostgreSQL 数据库中的同一个表

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:14 26 4
gpt4 key购买 nike

我怀疑这个问题可能更适合数据库管理员站点,所以 LMK 如果是的话,我会移动它。 :)

我是这里的数据库/Postgres 初学者,请帮助我。我有一个系统设置为并行处理 10 个事物,并将这些事物的输出写入同一个 Postgres 数据库中的同一个表。写入正常,但它们需要永远。我的日志文件显示我将获得 30,000 个这样的结果,但只有 7,000 个反射(reflect)在数据库中。

我怀疑 Postgres 出于某种原因正在排队写入,我猜这是因为该表有一个自动递增的主键。如果我试图同时将 10 条记录写入同一个表,我会假设它们必须排队,否则如何设置主键?

我有这个权利吗,还是我的数据库配置严重错误?我的系统管理员通常不处理数据库,所以如果您有任何调整建议,即使是基本的建议,我也很乐意听取。 :)

最佳答案

I suspect Postgres is queueing up the writes for some reason, and my guess is that this happens because that table has an auto-incrementing primary key. If I'm trying to write 10 records to the same table simultaneously, I would assume they'd have to be queued, because otherwise how is the primary key going to be set?

不,不是这样。

如果您阅读 the documentation on sequences由于这个原因,您会看到它们免于事务可见性和回滚。使用 nextval 生成的 ID 不会在回滚时重复使用。

Do I have this right, or is my database horribly misconfigured? My sysadmin doesn't typically do databases, so if you have any tuning suggestions, even basic stuff, I'd be glad to hear them. :)

您更有可能在具有非常慢的 fsync() 的系统(例如单个磁性硬盘驱动器)上进行单独提交,每次插入一次。您的检查点间隔也可能太短(请参阅 PostgreSQL 日志,如果是这样,将会出现关于此的警告),可能有太多索引导致速度减慢,等等。

您应该查看 PostgreSQL 日志。

另请参阅 the primer I wrote on the topic of improving insert performance .

关于sql - 缓慢同时写入 PostgreSQL 数据库中的同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25004623/

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