행당 INSERT vs 배치당 INSERT
1000 별도 INSERT statement 가 1000 라운드트립. 1000 행 한 INSERT 가 한 라운드트립. 속도 향상 보통 50-100×. 진짜 큰 데이터 로드엔 COPY 가 multi-row INSERT 보다 한 자릿수 더 빠름.
속도 위계
- 루프의 single-row INSERT — 가장 느림, 각 라운드트립.
- Multi-row INSERT — 빠름, 배치당 한 라운드트립.
- COPY FROM STDIN — 가장 빠름, 데이터를 테이블로 직접 stream (각 행을 별도 statement 로 파싱 안 함).
- Binary 포맷의 COPY — 모든 거의 가장 빠름; 텍스트 파싱 완전 우회.
어느 거 쓸지
일반 앱 write: multi-row INSERT (대부분 ORM 이 묵시적으로). 큰 import, ETL, seeding: COPY. 십억 행 로드: \copy 또는 pgloader 의 binary 포맷 COPY.