Thực ra, có khá nhiều lý do, nhưng những lý do chính là:
-
Thông thường, các ứng dụng khách chờ xác nhận một
INSERT
thành công trước khi gửi tiếp theo. Vì vậy, có độ trễ cho mỗi chuyến điINSERT
, lập lịch trình chậm trễ, v.v. (PgJDBC hỗ trợ tạo đường dẫnINSERT
theo lô, nhưng tôi không biết bất kỳ khách hàng nào khác cũng vậy). -
Mỗi
INSERT
phải thông qua toàn bộ người thực hiện. Việc sử dụng một câu lệnh đã chuẩn bị bỏ qua sự cần thiết phải chạy trình phân tích cú pháp, viết lại và lập kế hoạch, nhưng vẫn có trạng thái thực thi để thiết lập và chia nhỏ cho từng hàng.COPY
thực hiện một số thiết lập một lần và có cực kỳ chi phí thấp cho mỗi hàng, đặc biệt là khi không có trình kích hoạt nào liên quan.
Điểm đầu tiên là quan trọng nhất. Đó là tất cả về các chuyến đi khứ hồi trong mạng và sự chậm trễ lên lịch lại.