| From: | Jeff Ross <jross(at)openvistas(dot)net> |
|---|---|
| To: | pgsql-general(at)lists(dot)postgresql(dot)org |
| Subject: | Re: COPY FROM - to avoid WAL generation |
| Date: | 2018-08-21 15:26:11 |
| Message-ID: | d69dd58e-f27b-5878-f4b3-351a60ae8fd8@openvistas.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andres Freund | 2018-08-21 15:31:28 | Re: COPY FROM - to avoid WAL generation |
| Previous Message | Ravi Krishna | 2018-08-21 15:00:03 | COPY FROM - to avoid WAL generation |