मुझे एक बड़े परिणाम सेट से निपटना होगा (सैकड़ों हजारों पंक्तियां हो सकती हैं, कभी-कभी अधिक)।
दुर्भाग्यवश दुर्भाग्य से सभी को एक बार में शुरू करने की आवश्यकता है (स्टार्ट अप पर)।कुशलता से MySQLDB SScursor का उपयोग कैसे करें?
मैं जितना संभव हो उतना कम स्मृति उपयोग करके ऐसा करने की कोशिश कर रहा हूं।
एसओ को देखकर मैंने पाया है कि SSCursor
का उपयोग करके मैं जो खोज रहा हूं, लेकिन मुझे अभी भी वास्तव में पता नहीं है कि उन्हें वास्तव में कैसे उपयोग किया जाए।
आधार कर्सर से fetchall()
या एक एसएसकर्सर (स्मृति उपयोग की अवधि में) कर रहा है?
क्या मैं अपनी पंक्तियों को एक-एक करके (या कुछ से कुछ) एसएससीसर से 'स्ट्रीम' कर सकता हूं और यदि हां,
ऐसा करने का सबसे अच्छा तरीका क्या है?
मुझे लगता है कि मैं जो खोज रहा था, धन्यवाद – Sylvain
क्या यह एक-एक करके पंक्तियों को लाता है? यदि नहीं, तो यह एक बार में कितनी पंक्तियां लाता है। मेरे पास 37 मिलियन से अधिक रिकॉर्ड के साथ एक डीबी है। मुझे रिकॉर्ड एक-एक करके पढ़ने की ज़रूरत है और उन्हें एक फाइल में डाल देना है (कुछ अतिरिक्त चीजों के साथ, इसलिए एक साधारण डंप नहीं हो सकता है)। क्या यह किसी भी तरह समानांतर में किया जा सकता है। उदाहरण के लिए मैं 10000 पंक्तियां उन्हें लिखता हूं और जब मैं उन्हें लिखता हूं तो कुछ पंक्तियां प्राप्त की जा रही हैं और इसी तरह .. – Sohaib
@ सोहाइब: यह एक समय में एक पंक्ति लाती है। यदि आपकी समस्या सीपीयू-बाध्य है, तो आप एकाधिक डीबी पाठकों को स्थापित करने के लिए मल्टीप्रोसेसिंग (पायथन 2/3) या समवर्ती। फ़्यूचर्स (पायथन 3 में) का उपयोग कर सकते हैं, लेकिन आपको केवल एक लेखक को फ़ाइल में उपयोग करना चाहिए, अन्यथा रिकॉर्ड प्राप्त होंगे विकृत। [यदि आपकी समस्या आईओ-बाध्य है] (http://eli.thegreenplace.net/2012/01/16/python-parallelizing-cpu-bound-tasks-with-multiprocessing/) - अगर फ़ाइल में लिखना है बाधा - फिर एकाधिक पाठकों की स्थापना नौकरी को तेज नहीं करेगी। – unutbu