Setelah saran dari user30184 , Paul Ramsey dan eksperimen saya sendiri. Saya memutuskan untuk menjawab pertanyaan ini.
Saya gagal menyebutkan dalam pertanyaan ini bahwa saya mengimpor data ke server jauh. (meskipun dijelaskan dalam posting blog yang saya rujuk). Operasi seperti sisipan, melalui internet tunduk pada latensi jaringan. Mungkin tidak relevan untuk menyebutkan bahwa server ini ada di Amazon RDS , yang mencegah saya dari ssh ke mesin dan menjalankan operasi secara lokal.
Dengan memikirkan hal ini, saya merekayasa ulang pendekatan saya, menggunakan arahan "\ copy" untuk mempromosikan dump data ke tabel baru. Saya pikir strategi ini adalah kunci penting, yang juga merujuk pada komentar / jawaban untuk pertanyaan ini.
psql database -U user -h host.eu-west-1.rds.amazonaws.com -c "\copy newt_table from 'data.csv' with DELIMITER ','"
Operasi ini sangat cepat. Karena saya mengimpor csv, saya kemudian memiliki semua pekerjaan mengisi geometri, menambahkan indeks spasial, dll. Itu masih sangat cepat, karena saya kemudian menjalankan kueri di server .
Saya memutuskan untuk patokan juga saran dari user30184 , Paul Ramsey . File data saya adalah shapefile titik dengan 3035369 catatan, dan 82 MB.
Pendekatan ogr2ogr (menggunakan arahan PG_USE_COPY) selesai pada 1:03:00 m, yang masih * jauh lebih baik dari sebelumnya.
Pendekatan shp2pgsql (menggunakan direktif -D) selesai hanya dalam 00:01:04 m.
Layak untuk mengatakan bahwa ogr2ogr membuat indeks spasial selama operasi, sementara shp2pgsql tidak. Saya menemukan bahwa jauh lebih efisien untuk membuat indeks setelah melakukan impor, daripada membengkak operasi impor dengan jenis permintaan ini.
Kesimpulannya adalah: shp2pgsql, ketika diparameterisasi dengan benar, sangat cocok untuk melakukan impor besar, yaitu yang akan diakomodasikan di dalam Layanan Web Amazon.
Anda dapat membaca deskripsi yang lebih rinci dari kesimpulan ini, pada pembaruan posting ini .