PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Sisipan massal SQLAlchemy Core lambat

Saya kecewa ketika saya melihat ini tidak memiliki jawaban ... Saya mengalami masalah yang sama persis beberapa hari yang lalu:Mencoba memasukkan sekitar jutaan baris ke Instans RDS Postgres menggunakan CORE. Butuh waktu jam .

Sebagai solusinya, saya akhirnya menulis skrip penyisipan massal saya sendiri yang menghasilkan sql mentah itu sendiri:

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

Meskipun jelek, ini memberi saya performa yang kami butuhkan (~500.000 baris/menit)

Apakah Anda menemukan solusi berbasis CORE? Jika tidak, semoga membantu!

PEMBARUAN:Akhirnya memindahkan skrip lama saya ke instance EC2 cadangan yang tidak kami gunakan yang sebenarnya memperbaiki masalah kinerja yang lambat. Tidak yakin apa penyiapan Anda, tetapi tampaknya ada overhead jaringan dalam berkomunikasi dengan RDS dari koneksi eksternal (non-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. PostgreSQL - buat kolom kenaikan otomatis untuk kunci non-primer

  2. `pg_tblspc` hilang setelah penginstalan versi terbaru OS X (Yosemite atau El Capitan)

  3. hapus kolom tidak ada

  4. Hasilkan string alfanumerik acak sebagai kunci utama untuk model

  5. Ulangi kolom RECORD