Psycopg2, Postgresql, Python: Fastest way to bulk-insert
Solution 1:
Yeah, I would vote for COPY, providing you can write a file to the server's hard drive (not the drive the app is running on) as COPY will only read off the server.
Solution 2:
There is a new psycopg2 manual containing examples for all the options.
The COPY option is the most efficient. Then the executemany. Then the execute with pyformat.
Solution 3:
in my experience executemany
is not any faster than running many inserts yourself,
the fastest way is to format a single INSERT
with many values yourself, maybe in the future executemany
will improve but for now it is quite slow
i subclass a list
and overload the append method ,so when a the list reaches a certain size i format the INSERT to run it