PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQLAlchemy कोर बल्क इंसर्ट धीमा

जब मैंने देखा कि इसका कोई जवाब नहीं है तो मैं चकित था ... मैं दूसरे दिन ठीक उसी समस्या में भाग गया:कोर का उपयोग करके पोस्टग्रेस आरडीएस इंस्टेंस में लाखों पंक्तियों को थोक-सम्मिलित करने का प्रयास कर रहा था। इसमें घंटे लग रहे थे ।

वर्कअराउंड के रूप में, मैंने अपनी स्वयं की बल्क-इंसर्ट स्क्रिप्ट लिखना समाप्त कर दिया, जिसने स्वयं कच्चे sql को उत्पन्न किया:

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

बदसूरत होने पर, इसने मुझे वह प्रदर्शन दिया जिसकी हमें आवश्यकता थी (~ 500,000 पंक्तियाँ/मिनट)

क्या आपको कोर-आधारित समाधान मिला? अगर नहीं, तो उम्मीद है कि इससे मदद मिलेगी!

अद्यतन:मेरी पुरानी स्क्रिप्ट को एक अतिरिक्त ईसी 2 उदाहरण में ले जाना समाप्त हुआ जिसका हम उपयोग नहीं कर रहे थे जो वास्तव में धीमी प्रदर्शन समस्या को ठीक करता था। सुनिश्चित नहीं है कि आपका सेटअप क्या है, लेकिन स्पष्ट रूप से बाहरी (गैर-एडब्ल्यूएस) कनेक्शन से आरडीएस के साथ संचार करने में एक नेटवर्क ओवरहेड है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqlalchemy का डिफ़ॉल्ट कॉलम मान काम क्यों नहीं कर रहा है

  2. रेल 5:ट्री व्यू में डेटटाइम फ़ील्ड द्वारा समूह रिकॉर्ड:

  3. स्थानीय रूप से आपूर्ति की गई सूची का उपयोग करके दूरस्थ पोस्टग्रेस्क्ल डेटाबेस से रिकॉर्ड हटाना

  4. SSH टनल के माध्यम से PostgreSQL

  5. Django और नए सर्वर पर PostgreSQL कनेक्शन का समय समाप्त ऑपरेशनल त्रुटि