gpt4 book ai didi

sql - 如何使用 Golang 在 Postgres 中批处理 SQL 语句

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:23 24 4
gpt4 key购买 nike

使用 Golang 向 Postgres 数据库发送批量请求的最快方法是什么?每个请求包含 500-200000 行。
我知道的方法是-
1. 使用database/sql包的事务Begin, Prepare, Commit.
2. 一条语句发送所有数据。
3. 使用 sql.Exec() 方法发送语句列表。
有没有其他方法可以在不在每个语句中建立连接的情况下发送批量请求?如果不是,哪种方法最好?

这个问题类似于- Golang how do I batch sql statements with package database.sql 的问题

最佳答案

depesz有点老blog post在那上面。他的程序是 Perl 脚本,但如果你专注于 SQL... 无论如何 - 从数据库的角度来看,你可以使用 COPY,或 INSERT VALUES 中的许多行。看起来 20 左右是不错的选择,但值得根据您的情况进行测试。如果性能是关键因素,我会在每个事务中放置大约 2000-5000 行。此外,从数据库的角度来看,事务和 session 是两个独立的事物。所以你可以打开 session ,并在其中进行许多事务。

对于 PostgreSQL 来说,每次操作都启动新的 session 真的是个坏主意——数据库为每个 session 生成新的进程。您提到的问题的答案之一包含 this .所以你打开连接,然后打开交易,这是应该做的。

关于sql - 如何使用 Golang 在 Postgres 中批处理 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47988674/

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