"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या MySQLDB SSCursor के साथ फ़ेचॉल() का उपयोग वास्तव में बड़े डेटासेट के लिए कुशल है?

क्या MySQLDB SSCursor के साथ फ़ेचॉल() का उपयोग वास्तव में बड़े डेटासेट के लिए कुशल है?

2024-11-18 को प्रकाशित
ब्राउज़ करें:795

Is Using fetchall() with MySQLDB SSCursor Actually Efficient for Large Datasets?

बड़े परिणाम सेट के लिए MySQLDB SSCursor का कुशल उपयोग

सैकड़ों हजारों या अधिक पंक्तियों वाले विशाल परिणाम सेट को संभालते समय, कुशल मेमोरी प्रबंधन बन जाता है महत्वपूर्ण। इस प्रकार, MySQLDB SScursor (स्ट्रीमिंग सेलेक्ट कर्सर) मेमोरी खपत को कम करने के लिए एक उपयुक्त उपकरण के रूप में उभरता है।

बेस कर्सर बनाम Fetchall() के बीच अंतर

आम धारणा के विपरीत, एसएसकर्सर से फ़ेचॉल() निष्पादित करने पर बेस कर्सर की तुलना में अधिक मेमोरी की खपत होती है। ऐसा इसलिए है क्योंकि एक SScursor सर्वर से क्रमिक रूप से परिणाम प्राप्त करता है, जबकि Fetchall() पूरे परिणाम सेट को मेमोरी में डाउनलोड करता है। इसलिए, मेमोरी-बाधित परिदृश्यों के लिए फ़ेचॉल () का उपयोग करना प्रतिकूल हो जाता है। पंक्ति के आधार पर, निम्न विधि नियोजित करें:

आयात MySQLdb.cursors कनेक्शन=MySQLdb.connect( होस्ट = "द होस्ट", उपयोगकर्ता = "द उपयोगकर्ता", passwd='दपासवर्ड',db='thedb', कर्सरक्लास = MySQLdb.cursors.SSCursor) कर्सर=कनेक्शन.कर्सर() कर्सर.निष्पादित(क्वेरी) कर्सर में पंक्ति के लिए: print(row)

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

import MySQLdb.cursors
connection=MySQLdb.connect(
    host="thehost",user="theuser",
    passwd="thepassword",db="thedb",
    cursorclass = MySQLdb.cursors.SSCursor)

cursor=connection.cursor()
cursor.execute(query)

for row in cursor:
    print(row)

WHERE क्लॉज निर्दिष्ट करके या LIMIT का उपयोग करके परिणाम सेट का आकार सीमित करें।सर्वर-साइड कर्सर का उपयोग करें जब संभव है।

    समूहों में परिणामों को संसाधित करने के लिए बैच फ़ेचिंग को नियोजित करें।
  • वैकल्पिक डेटाबेस इंजनों पर विचार करें, जैसे कि MariaDB के MyRocks, जो बड़े परिणाम सेटों के कुशल संचालन की पेशकश करते हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3