gpt4 book ai didi

INSERT INTO 表 SELECT 与 COPY 的 PostgreSQL 性能

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

我正在尝试在 PostgreSQL 中移动中等数量的数据(数千万到数亿行)。

在设计系统时,我试图理解:INSERT INTO table(field1, field2) SELECT field1, field2 FORM other_tableCOPY FROM .. . BINARY 在 PostgreSQL 中?

我找不到任何直接说明该问题的文档。我可以看到的一些注意事项:

  • INTO INTO ... SELECT 需要从同一磁盘读取和写入
  • COPY FROM ... BINARY 需要一个拥有数据的客户端,或者执行一个往返 COPY TO ... 管道到 COPY FROM ...

但我敢肯定还有其他人,我希望有某种形式的规范性能指导围绕这些比较期望。

最佳答案

这样的问题最终只能通过测试来回答。

但是如果你想将数据从一个表复制到另一个表,INSERT ... SELECT ... 应该表现更好,因为它不需要将数据保存到中间文件或通过客户端-服务器连接。

速度提示:

  • 加载数据时在新表上没有约束和索引,但随后添加它们。

  • 确保 max_wal_size 较高。

之后我会VACUUM (FREEZE) 新表(这不会影响表上的正常工作)以使 future 的反环绕 autovacuum 运行得更快。

关于INSERT INTO 表 SELECT 与 COPY 的 PostgreSQL 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58307074/

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