ホームページ > データベース > mysql チュートリアル > データベースの作成を高速化するために PostgreSQL での一括挿入を最適化するにはどうすればよいですか?

データベースの作成を高速化するために PostgreSQL での一括挿入を最適化するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-16 15:15:09
オリジナル
442 人が閲覧しました

How Can I Optimize Bulk Inserts in PostgreSQL for Faster Database Population?

一括挿入による Postgres データベースの作成の高速化

Postgres データベースに大規模なデータセットを追加するには、効率的な方法が必要です。 個々の INSERT ステートメントは、一括操作では遅くなります。 Postgres は、COPY コマンドという優れたソリューションを提供します。

COPY コマンドは、標準のクエリ パーサーをバイパスして、ファイルまたは標準入力からテーブルにデータを直接ロードし、挿入を大幅に高速化します。

バルクデータロードのための COPY コマンドの使用:

  1. データを含むテキスト ファイルを準備します。

  2. 次の構文を使用して、Postgres ターミナルで COPY コマンドを実行します。

    <code class="language-sql">COPY table_name (column1, column2, ...) FROM '/path/to/data.txt' DELIMITER ',' CSV HEADER;</code>
    ログイン後にコピー
  3. プレースホルダーを置き換えます: table_name はテーブルの名前に、/path/to/data.txt はファイルの絶対パスに置き換えます。

  4. データの構造に応じて DELIMITERCSV HEADER を調整します。

さらなるパフォーマンスの強化:

COPY を超えて、これらの戦略は一括挿入をさらに最適化します:

  • 一時的に制約を無効にする: ロードする前にインデックスと外部キー制約を削除します。後で再度有効にします。これにより、オーバーヘッドが大幅に削減されます。
  • Postgres 設定の最適化: work_memmaintenance_work_mem を調整して、インポート プロセスに十分なメモリを提供します。
  • 並列処理: データを複数のファイルに分割し、同時 COPY コマンドを使用して並列ロードします。これにより、マルチコア プロセッサが最大限の速度を実現します。

以上がデータベースの作成を高速化するために PostgreSQL での一括挿入を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート