หลังจากคำแนะนำของผู้ใช้30184 , Paul Ramseyและการทดลองของฉันเอง ฉันตัดสินใจตอบคำถามนี้
ฉันไม่ได้พูดถึงคำถามนี้ว่าฉันกำลังนำเข้าข้อมูลไปยังเซิร์ฟเวอร์ระยะไกล (แม้ว่าจะอธิบายไว้ในบล็อกโพสต์ที่ฉันอ้างถึง) การดำเนินการเช่นส่วนแทรกผ่านทางอินเทอร์เน็ตอาจมีความล่าช้าของเครือข่าย อาจไม่เกี่ยวข้องกับการพูดถึงว่าเซิร์ฟเวอร์นี้อยู่ในAmazon RDSซึ่งป้องกันฉันจาก ssh ไปยังเครื่องและเรียกใช้การทำงานในเครื่อง
เมื่อนึกถึงสิ่งนี้ฉันจึงออกแบบวิธีการของฉันใหม่โดยใช้คำสั่ง "\ copy" เพื่อโปรโมตดัมพ์ของข้อมูลลงในตารางใหม่ ฉันคิดว่ากลยุทธ์นี้เป็นกุญแจสำคัญซึ่งก็อ้างถึงความเห็น / คำตอบสำหรับคำถามนี้
psql database -U user -h host.eu-west-1.rds.amazonaws.com -c "\copy newt_table from 'data.csv' with DELIMITER ','"
การดำเนินการนี้เร็วอย่างไม่น่าเชื่อ ตั้งแต่ผมนำเข้า CSV ผมก็มีการทำงานทั้งหมดของประชากรของรูปทรงเรขาคณิตเพิ่มดัชนีอวกาศ ฯลฯ มันยังคงเป็นที่น่าทึ่งอย่างรวดเร็วตั้งแต่ผมทำงานแล้วคำสั่งบนเซิร์ฟเวอร์
ฉันตัดสินใจที่จะเกณฑ์มาตรฐานนอกจากนี้ยังมีข้อเสนอแนะจากuser30184 , พอลแรมซีย์ ไฟล์ข้อมูลของฉันเป็นไฟล์รูปร่างจุดที่มีระเบียน 3035369 และ 82 MB
วิธี ogr2ogr (ใช้คำสั่ง PG_USE_COPY) เสร็จในเวลา 1:03:00 m ซึ่งยังดีกว่าเมื่อก่อนมาก
วิธี shp2pgsql (ใช้คำสั่ง -D) เสร็จในเวลา 00:01:04 m เท่านั้น
เป็นมูลค่าที่จะกล่าวว่า ogr2ogr สร้างดัชนีเชิงพื้นที่ระหว่างการดำเนินการในขณะที่ shp2pgsql ไม่ได้ ฉันพบว่ามันมีประสิทธิภาพมากขึ้นในการสร้างดัชนีหลังจากทำการนำเข้าแทนที่จะทำให้การดำเนินการนำเข้ามีปัญหากับคำขอประเภทนี้
ข้อสรุปคือ: shp2pgsql เมื่อมีการกำหนดพารามิเตอร์อย่างเหมาะสมนั้นเหมาะสมอย่างยิ่งสำหรับการนำเข้าขนาดใหญ่กล่าวคือสิ่งที่ต้องให้ความสะดวกในขณะที่ Amazon Web Services
คุณสามารถอ่านรายละเอียดเพิ่มเติมของข้อสรุปเหล่านี้ในการปรับปรุงของนี้โพสต์