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

आप पायथन / पोस्टग्रेएसक्यूएल को तेज कैसे बनाते हैं?

प्रोफाइलिंग में समय बर्बाद न करें। समय हमेशा डेटाबेस संचालन में होता है। जितना हो सके कम करें। सम्मिलित करने की न्यूनतम संख्या।

तीन चीजें।

एक। दिनांक, होस्टनाम और व्यक्ति आयामों के अनुरूप होने के लिए बार-बार चयन न करें। एक बार सभी डेटा को पायथन डिक्शनरी में प्राप्त करें और इसे मेमोरी में उपयोग करें। बार-बार सिंगलटन चयन न करें। पायथन का प्रयोग करें।

दो। अपडेट न करें।

विशेष रूप से, ऐसा न करें। यह दो कारणों से खराब कोड है।

cursor.execute("UPDATE people SET chats_count = chats_count + 1 WHERE id = '%s'" % person_id)

इसे एक साधारण SELECT COUNT(*) FROM ... से बदला जा सकता है। गिनती बढ़ाने के लिए कभी भी अपडेट न करें। केवल उन पंक्तियों को गिनें जो एक चयन कथन के साथ हैं। [यदि आप इसे एक साधारण SELECT COUNT या SELECT COUNT(DISTINCT) के साथ नहीं कर सकते हैं, तो आप कुछ डेटा खो रहे हैं -- आपके डेटा मॉडल को हमेशा सही पूर्ण गणना प्रदान करनी चाहिए। कभी भी अपडेट न करें।]

और। स्ट्रिंग प्रतिस्थापन का उपयोग करके कभी भी SQL का निर्माण न करें। पूरी तरह से गूंगा।

अगर, किसी कारण से SELECT COUNT(*) पर्याप्त तेज़ नहीं है (बेंचमार्क पहले, कुछ भी लंगड़ा करने से पहले) आप किसी अन्य तालिका में गिनती के परिणाम को कैश कर सकते हैं। सभी भारों के बाद। एक SELECT COUNT(*) FROM whatever GROUP BY whatever और इसे गिनती की तालिका में डालें। अपडेट न करें। कभी।

तीन। बाइंड वेरिएबल्स का उपयोग करें। हमेशा।

cursor.execute( "INSERT INTO ... VALUES( %(x)s, %(y)s, %(z)s )", {'x':person_id, 'y':time_to_string(time), 'z':channel,} )

एसक्यूएल कभी नहीं बदलता है। मान परिवर्तन में बंधे हैं, लेकिन SQL कभी नहीं बदलता है। यह बहुत तेज है। कभी भी SQL स्टेटमेंट को गतिशील रूप से न बनाएं। कभी नहीँ।



  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 में EXCLUDE के साथ आसन्न/अतिव्यापी प्रविष्टियों को रोकना

  2. पोस्टग्रेज:ARRAY_AGG और HAVING (WHERE के बजाय) का उपयोग करके परिणामों को फ़िल्टर करना

  3. PostgreSQL बनाम Linux कर्नेल संस्करण

  4. PostgreSQL डेटाबेस में सभी ट्रिगर्स को सूचीबद्ध करने के 2 तरीके

  5. पोस्टग्रेज psql सेलेक्ट स्टेटमेंट में डिफ़ॉल्ट रूप से डिस्प्ले को छोटा करना