For ループを使用しない Go を使用した CSV から PostgreSQL への一括挿入
CSV ファイルから PostgreSQL データベースに大量のデータを挿入すると、次のことが可能になります。 for ループを使用すると時間がかかります。より効率的なアプローチは、pgx ライブラリを利用して一括コピー操作を実行することです。
一括挿入に pgx を使用する
これを実現するには、次の手順に従います。
コード例
次の Go コードは、データを一括挿入する方法を示しています。 pgx:
<code class="go">import ( "context" "fmt" "os" "github.com/jackc/pgx/v5" ) func main() { filename := "foo.csv" dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL")) if err != nil { panic(err) } defer dbconn.Release() f, err := os.Open(filename) if err != nil { panic(err) } defer func() { _ = f.Close() }() res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)") if err != nil { panic(err) } fmt.Print(res.RowsAffected()) }</code>
を使用して CSV ファイルを PostgreSQL データベースに保存します。このアプローチを使用すると、for ループのオーバーヘッドを発生させずに、大きな CSV ファイルからデータを効率的に一括挿入できます。この方法は、大規模なデータ セットを処理し、より高速なデータ読み込みパフォーマンスを確保する場合に特に役立ちます。
以上がfor ループを使用せずに Go を使用して CSV ファイルから PostgreSQL にデータを効率的に一括挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。