Go で pgx を使用して Postgres にデータを一括挿入する方法: 包括的なガイド
Oct 31, 2024 am 03:32 AMGo で pgx を使用した Postgres への一括挿入: 包括的なソリューション
データベースへの一括挿入を試行する場合、SQL ステートメントを手動で作成すると、エラーやパフォーマンスのボトルネックが発生する可能性があります。 pgx の pgx.Conn.CopyFrom 機能を利用すると、プロセスを自動化する効率的なソリューションが提供されます。
手動 SQL 作成の問題
提供されたコードでは、SQL ステートメントは文字列を連結することによって構築されます。ドルパラメータ ($ 記号) の数が conn.Exec 関数に渡される引数の数と一致しない場合、エラーが発生する可能性があります。さらに、大規模な入力の文字列連結は効率が悪く、メモリの問題を引き起こす可能性があります。
pgx の CopyFrom メソッドの利用
pgx の CopyFrom メソッドは、PostgreSQL コピー プロトコルを利用することで一括データの挿入を簡素化します。 3 つの引数を取ります:
- tableName: 挿入のターゲット テーブルの名前。
- columnNames: 挿入される列の名前を指定する文字列のスライス。
- rowSrc: 挿入するデータを生成する CopyFromSource オブジェクト。
CopyFromSource インターフェイスを使用すると、データ ソースを柔軟に指定できます。これは、インターフェイス値のスライスのスライス (提供された例のように)、CSV データを含む strings.Reader、またはカスタム実装を使用して実装できます。
コード例
以下はCopyFrom:
<code class="go">rows := [][]interface{}{ {"abc", 10}, {"dns", 11}, {"qwe", 12}, {"dss", 13}, {"xcmk", 14}, } _, err := conn.CopyFrom( pgx.Identifier{"keys"}, []string{"keyval", "lastval"}, pgx.CopyFromRows(rows), )</code>
の使用を示す改訂されたコード スニペット。このコードは行を「keys」テーブルに効率的に一括挿入し、手動で SQL を作成する場合と比較してパフォーマンスを大幅に向上させ、エラーの可能性を減らします。
以上がGo で pgx を使用して Postgres にデータを一括挿入する方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

Linterと静的分析ツールを使用して、GOコードの品質と保守性を向上させるにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?
