Closed3

postgresql DB に 大量データを投入する

輝

そして、下記の記事を見た。なるほど!
https://tech.pscsrv.co.jp/2020/05/08/【postgresql】一括でデータを入出力できるcopyコマンド/

PostgreSQLのCOPYコマンドは、テーブルとDBサーバ内のファイル間でデータのやり取り(読み込み/書き出し)をするためのコマンドです。

負荷テスト用に大量データを投入する際に利用したり、テキストベースでバックアップを取ったりする際に利用することができます。
輝

COPY コマンドを使うとデータをファイルで事前に用意しないと行けない。ファイルに大量のデータを入れるのも偶に面倒な場合もあるので、その場合はgenerate_series()関数を使用する方法の登場だ!
https://tech-blog.rakus.co.jp/entry/20190315/postgresql/massive-data/function#PostgreSQLに大量データを投入する方法は大きくは2つ

  • 例:1000万行が入った1GB超のファイルを用意する必要はありません。SQL1文で作成できます。
INSERT INTO customer (id,name) 
 SELECT 
     i, format('ラクス太郎%s', i)
 FROM
     generate_series(1,10000000) as i
;

性能的には COPY コマンドとほぼ同じということですが、結構楽!

このスクラップは2023/09/25にクローズされました