gpt4 book ai didi

postgresql - PostgreSQL 中批量插入的最佳大小

转载 作者:行者123 更新时间:2023-12-05 00:48:43 28 4
gpt4 key购买 nike

我有两个大整数的巨大表(500 000 000 行)。两列都被单独索引。我正在使用语法批量插入此表:

INSERT into table (col1, col2) VALUES(x0, y0), (x1, y1),...;

当插入少量项目(比如 500 个)时,每一个项目给我的时间与插入大量项目(比如 20000 个)时相同。这是预期的行为吗?我认为 PostgreSQL 在一次插入更多值时会执行某种优化。请注意:自动提交已禁用。

感谢您的建议。

最佳答案

这并不奇怪。

如果您在单个事务中运行每个插入,则 fsync 会在每次提交时强制将数据输出到预写日志,从而限制性能。

但是,一旦您的批处理足够大,实际 I/O 就会相形见绌,而且无论您的批处理有多大,性能都应该保持不变。无论插入 100 行还是 10000 行,每次插入都执行相同的操作并花费相同的时间。

就 PostgreSQL 的架构而言,唯一可能阻止您在单个事务中插入所有内容的是事务失败时丢失的工作量。

关于postgresql - PostgreSQL 中批量插入的最佳大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250849/

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