Tôi đã rất bối rối khi thấy điều này không có câu trả lời ... Tôi đã gặp phải vấn đề chính xác vào ngày hôm trước:Cố gắng chèn hàng loạt khoảng hàng triệu hàng vào Phiên bản Postgres RDS bằng cách sử dụng CORE. Mất giờ .
Để giải quyết vấn đề này, tôi đã kết thúc việc viết tập lệnh chèn hàng loạt của riêng mình để tạo ra chính sql thô:
bulk_insert_str = []
for entry in entry_list:
val_str = "('{}', '{}', ...)".format(entry["column1"], entry["column2"], ...)
bulk_insert_str.append(val_str)
engine.execute(
"""
INSERT INTO my_table (column1, column2 ...)
VALUES {}
""".format(",".join(bulk_insert_str))
)
Tuy xấu nhưng điều này đã mang lại cho tôi hiệu suất mà chúng tôi cần (~ 500.000 hàng / phút)
Bạn đã tìm thấy một giải pháp dựa trên CORE? Nếu không, hy vọng điều này sẽ hữu ích!
CẬP NHẬT:Đã kết thúc việc di chuyển tập lệnh cũ của tôi vào một phiên bản EC2 dự phòng mà chúng tôi không sử dụng thực sự đã khắc phục được sự cố hiệu suất chậm. Không chắc thiết lập của bạn là gì, nhưng có vẻ như có một chi phí mạng khi giao tiếp với RDS từ kết nối bên ngoài (không phải AWS).