gpt4 book ai didi

postgresql - 在 PostgreSQL 表上应用 150M 更新的最快方法是什么

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

我们有一个 150M 行的文件,它只用这样的命令更新 postgresql 数据库的一个表:

UPDATE "events" SET "value_1" = XX, "value_2" = XX, "value_3" = XX, "value_4" = XX WHERE "events"."id" = SOME_ID;

所有 ID 都是唯一的,无法将更新应用于多个事件。目前,如果我们在 psql 中使用 \i update.sql 运行此更新,则此类更新大约需要几天时间。

有没有更快的运行方式?

最佳答案

  • 最简单:在\i update.sql

    之前添加set synchronous_commit=off
  • 更好:

    • 将文件分成大约 100000 个更新的部分:
      split -l 100000 -a 6 --additional-suffix=.sql update.sql update-part
    • 并行运行这些更新,每个文件在单个事务中,例如:
      /bin/ls update-part*.sql\
      | xargs --max-procs=8 --replace psql --single-transaction --file={}

关于postgresql - 在 PostgreSQL 表上应用 150M 更新的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38233631/

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