首頁  >  文章  >  後端開發  >  如何使用 pgx 和 Go 在 PostgreSQL 中執行高效的批次插入?

如何使用 pgx 和 Go 在 PostgreSQL 中執行高效的批次插入?

DDD
DDD原創
2024-10-31 04:51:02899瀏覽

How to Perform Efficient Bulk Inserts in PostgreSQL with pgx and Go?

使用 Go 和 pgx 在 PostgreSQL 中批次插入

此程式碼片段示範了使用 Go 中的 pgx 函式庫在 PostgreSQL 中執行批次插入的正確方法。

問題描述

原始程式碼嘗試手動建構SQL語句進行批次插入,但由於參數計數不正確而遇到錯誤。

使用pgx.CopyFrom

我們沒有手動編寫SQL 語句,而是利用pgx.Conn.CopyFrom 方法,該方法利用PostgreSQL 的複製協議進行高效的批量插入:

<code class="go">rows := [][]interface{}{
    {&quot;abc&quot;, 10},
    {&quot;dns&quot;, 11},
    {&quot;qwe&quot;, 12},
    {&quot;dss&quot;, 13},
    {&quot;xcmk&quot;, 14},
}

copyCount, err := conn.CopyFrom(
    pgx.Identifier{&quot;keys&quot;},
    []string{&quot;keyval&quot;, &quot;lastval&quot;},
    pgx.CopyFromRows(rows),
)
if err != nil {
    fmt.Fprint(os.Stderr, &quot;Error : \n&quot;, err)
}</code>
此程式碼有效地將測試鍵插入到鍵表中單一操作,針對批次插入效能進行了最佳化。

以上是如何使用 pgx 和 Go 在 PostgreSQL 中執行高效的批次插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn