-2

私はPostgreSQLデータベースに何百万もの行を挿入しようとしています。私はそれを行うための最善の方法は何か不思議です。PostgreSQL - INSERT INTOパフォーマンス比較の比較

INTO

  • INSERT CREATE TABLE ASは私がより良いと理由である1を参照していますよ?私はいくつかのブログを読んだが、まだ結論に至ることができなかった。

    私はINSERT INTOが一括挿入操作だと思います。私が間違っているなら、私を修正してください。 CREATE TABLE AS SELECTがバルク挿入操作であるかどうか

    お知らせください。

  • +0

    あなたは、この質問に答えるために十分な情報を提供していません。ここには一つの真実はありません、あなたが実際にやっていることに大きく依存しています。 – Nicarus

    +0

    [CREATE TABLE ASのマニュアルから引用してください](https://www.postgresql.org/docs/current/static/sql-createtableas.html): "*このコマンドはSELECT INTOと機能的には似ていますが、さらに、CREATE TABLE ASは、SELECT INTO *によって提供される機能のスーパーセットを提供しています* " –

    答えて

    1

    CREATE TABLE ASもバルク挿入操作です。主な違いは、CREATE TABLE ASがPostgreSQLで最適化しやすくなっていることです。 WAL情報が書き込まれる必要はないことは明らかです(WALベースの複製が有効でない限り)。この最適化が適用されるその他のケースについては、wal_level documentationおよびDisable WAL Archival and Streaming Replicationを参照してください。

    +0

    ありがとうございます。 CREATE TABLE ASがPostgreSQL用に最適化しやすく、WAL情報を書き込まないと言うと、INSERT INTOはすべてをWALに記録する必要がありますか?私は正しいことを理解しましたか? – Ramya

    +0

    正しい。 INSERT INTOは全てを記録しなければならない。 PostgreSQL 9.4をチェックしたところ、テーブルが同じトランザクション内で作成されていても、INSERT INTOに対して最適化は行われません。 –

    +0

    正確に私が知る必要があったもの。ありがとうフロリアン – Ramya

    関連する問題