Re: COPY FROM - to avoid WAL generation
Jeff Ross <jross@openvistas.net>
From: Jeff Ross <jross@openvistas.net>
To: pgsql-general@lists.postgresql.org
Date: 2018-08-21T15:26:11Z
Lists: pgsql-general
On 8/21/18 9:00 AM, Ravi Krishna wrote: > In a recent thread of mine I learned something very interesting. If a > table is created and data is loaded via COPY FROM within the same > transaction, then PG will be smart enough to not generate WAL logs > because all it needs to do is to track the status of the transaction > and let the data load go to the new data file created for the table. > If committed, the table is released for other sessions, if rolledback, > vaccum will delete the data file later on. > > I tested it as follows for a table with 50 milllion rows. No indexes. > > Case 1 > - create the table first. > - in a separate transaction load the 50 million rows. > > Took 3 min 22 seconds > > Case 2 > - start transaction > - create table > - load 50 million rows > - commit transaction > > Took: 3 min 16 seconds. > > Am I missing anything? > Have you looked into pg_bulkload? https://github.com/ossc-db/pg_bulkload Docs are here: http://ossc-db.github.io/pg_bulkload/index.html Jeff