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

Psycopg2 INSERT को लूप में चलने में इतना समय क्यों लग रहा है और मैं इसे कैसे गति दूं?

बल्क डेटा डालने में तेजी लाने के लिए कई विकल्प हैं।

1.) commit() लूप समाप्त होने के बाद:

for ele in coordinates:
    cursor.execute('INSERT INTO gmaps (source_latitude, source_longitude, destination_latitude, destination_longitude) VALUES (%s, %s, %s, %s)', (ele[0], ele[1], ele[2], ele[3])))
conn.commit()

2.) psycopg2 के तेज़ निष्पादन सहायकों का उपयोग करें , जैसे execute_batch() or execute_values()

3.) mogrify() . का उपयोग करके स्ट्रिंग एकाग्रता :

dataText = ','.join(cur.mogrify('(%s,%s,%s,%s)', row) for ele in coordinates)
cur.execute('INSERT INTO gmaps VALUES ' + dataText)
cur.commit()

INSERT . की विस्तृत तुलना के लिए निष्पादन गति इस पर एक नज़र डालें बेंचमार्क।




  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 स्ट्रीमिंग प्रतिकृति बनाम तार्किक प्रतिकृति

  2. यूयूआईडी की सरणी पर पोस्टग्रेएसक्यूएल जीआईएन इंडेक्स

  3. रेल - पोस्टग्रेज त्रुटि:कारण:असंगत पुस्तकालय संस्करण:libpq.5.dylib को संस्करण 1.0.0 या बाद के संस्करण की आवश्यकता है,

  4. PostgreSQL में मौजूदा टेबल के लिए क्रिएट टेबल sql स्टेटमेंट कैसे जनरेट करें?

  5. डेटाबेस पर dplyr फ़िल्टर फ़ंक्शन में SQL फ़ंक्शन पास करें