Sau những gợi ý của người dùng49584 , Paul Ramsey và những thí nghiệm của riêng tôi. Tôi quyết định trả lời câu hỏi này.
Tôi không đề cập đến trong câu hỏi này rằng tôi đang nhập dữ liệu đến một máy chủ từ xa. (mặc dù nó được mô tả trong bài viết trên blog mà tôi đề cập đến). Các hoạt động như chèn, qua internet có thể bị trễ mạng. Có lẽ không liên quan khi đề cập rằng máy chủ này có trên Amazon RDS , điều này ngăn tôi từ ssh đến máy và chạy các hoạt động cục bộ.
Có được điều này, tôi đã thiết kế lại cách tiếp cận của mình, sử dụng chỉ thị "\ copy" để quảng cáo kết xuất dữ liệu vào một bảng mới. Tôi nghĩ rằng chiến lược này là một chìa khóa thiết yếu, cũng được đề cập đến các ý kiến / câu trả lời cho câu hỏi này.
psql database -U user -h host.eu-west-1.rds.amazonaws.com -c "\copy newt_table from 'data.csv' with DELIMITER ','"
Hoạt động này là cực kỳ nhanh chóng. Kể từ khi tôi nhập một csv, sau đó tôi có tất cả công việc điền vào hình học, thêm chỉ mục không gian, v.v. Nó vẫn rất nhanh, vì lúc đó tôi đang chạy truy vấn trên máy chủ .
Tôi đã quyết định điểm chuẩn cũng là những gợi ý từ người dùng49584 , Paul Ramsey . Tệp dữ liệu của tôi là một shapefile điểm với 3035369 bản ghi và 82 MB.
Cách tiếp cận ogr2ogr (sử dụng chỉ thị PG_USE_COPY) đã hoàn thành sau 1:03:00 m, vẫn còn * tốt hơn nhiều so với trước đây.
Cách tiếp cận shp2pgsql (sử dụng chỉ thị -D) đã hoàn thành chỉ trong 00:01:04 m.
Điều đáng nói là ogr2ogr đã tạo ra một chỉ mục không gian trong quá trình hoạt động, trong khi shp2pgsql thì không. Tôi phát hiện ra rằng nó là hiệu quả hơn để tạo ra các chỉ số sau khi làm việc nhập khẩu, chứ không phải là đầy hơi hoạt động nhập khẩu với kiểu yêu cầu này.
Kết luận là: shp2pgsql, khi được tham số hóa chính xác, cực kỳ phù hợp để thực hiện nhập khẩu lớn, cụ thể là những dịch vụ được cung cấp bởi Amazon Web Services.
Bạn có thể đọc một mô tả chi tiết hơn về những kết luận này, trên bản cập nhật của bài viết này .