PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chèn hàng loạt SQLAlchemy Core chậm

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).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tôi có thể xem lại tất cả các khoản trợ cấp cho cơ sở dữ liệu và đối tượng cho một vai trò?

  2. Các giới hạn trên lược đồ PostgreSQL thay đổi bên trong các giao dịch?

  3. Làm cách nào để truy xuất dữ liệu từ nhiều bảng có liên quan trong Postgres?

  4. SQLAlchemy - SQLite để thử nghiệm và Postgresql để phát triển - Làm thế nào để chuyển?

  5. Trung bình động dựa trên Dấu thời gian trong PostgreSQL