簡體   English   中英

如何使用Golang在Postgres中批處理SQL語句

[英]How to batch SQL statements in Postgres using Golang

使用Golang將批處理請求發送到Postgres數據庫的最快方法是什么? 每個請求包含500-200000行。
我知道的方法是-
1.使用數據庫/ sql包的事務開始,准備,提交。
2.在一條語句中發送所有數據。
3.使用sql.Exec()方法發送語句列表。
還有其他方法可以發送批處理請求而不在每個語句之間建立連接嗎? 如果不是,最好的方法是什么?

這個問題類似於問題at Golang我如何使用包database.sql批處理sql語句

關於這一點,depesz的博客文章有些陳舊。 他的程序是Perl腳本,但是如果您專注於SQL ...無論如何-從數據庫角度來看,您可以對VALUES許多行使用COPYINSERT 看起來20左右是個不錯的選擇,但值得在您的情況下進行測試。 如果性能是關鍵因素,我將在每個事務中放置2000-5000行。 同樣,從數據庫角度來看,事務和會話是兩個獨立的事物。 因此,您可以打開會話,並在其中進行許多交易。

對於PostgreSQL,每次操作都啟動新會話確實不是一個好主意-DB為每個會話生成新進程。 您提到的問題的答案之一包含此內容 因此,您應該先打開連接,然后進行事務處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM