से निपटने के साथ मैं ब्लॉब छवियों को संग्रहित कॉलम के साथ एक बड़े बड़े MySQL डेटाबेस (कई मिलियन पंक्तियों) के साथ काम कर रहा हूं। एप्लिकेशन छवियों का एक सबसेट पकड़ने का प्रयास करता है और उन पर कुछ प्रसंस्करण एल्गोरिदम चलाता है। जिस समस्या में मैं चल रहा हूं वह यह है कि, मेरे पास बड़े डेटासेट के कारण, डेटासेट जो मेरी क्वेरी लौट रहा है वह मेमोरी में स्टोर करने के लिए बहुत बड़ा है।विशाल एसक्यूएल परिणामसेट
समय के लिए, मैंने छवियों को वापस नहीं करने के लिए क्वेरी बदल दी है। परिणामसेट पर पुनरावृत्ति करते समय, मैं एक और चयन चलाता हूं जो वर्तमान रिकॉर्ड से संबंधित व्यक्तिगत छवि को पकड़ता है। यह काम करता है, लेकिन हजारों अतिरिक्त प्रश्नों के परिणामस्वरूप प्रदर्शन में कमी आई है जो अस्वीकार्य है।
मेरा अगला विचार मूल क्वेरी को 10,000 परिणामों तक सीमित करना है, और फिर 10,000 पंक्तियों के स्पैन पर पूछताछ करना है। यह दो दृष्टिकोणों के बीच सड़क समझौता के बीच की तरह लगता है। मुझे लगता है कि शायद एक बेहतर समाधान है जिसे मुझे पता नहीं है। क्या एक समय में स्मृति में एक विशाल परिणाम के भाग का एक और तरीका है?
चीयर्स,
डेव McClelland
शायद मेरी स्मृति समस्याएं क्वेरी के कारण नहीं हैं। मैं एक पुराने संस्करण (धन्यवाद, संस्करण नियंत्रण) पर वापस आ गया, और डेटरेडर केवल उस पंक्ति को लोड कर रहा है जो वर्तमान में पढ़ रहा है, जैसा कि एंथनी ने उल्लेख किया है। फिर भी, मुझे आश्चर्य है कि क्या यह डीबी सर्वर से नेटवर्क पर स्थानांतरित करने के बजाय स्थानीय फाइल सिस्टम पर छवियों को रखने के लिए अधिक समझ में नहीं आता है (जैसा कि नीचे पैगंबरबेल द्वारा उल्लिखित है)। नकारात्मकता यह है कि यह दोनों स्थानों पर संग्रहीत किया जाएगा (वे अन्य सिस्टम के उपयोग के लिए डीबी में रहना चाहिए), लेकिन फाइल सिस्टम स्टोरेज स्पेस तत्काल चिंता नहीं है। इस पर कोई विचार? –
मैं एंथनी का जवाब दे रहा हूं क्योंकि उसने इंगित किया कि डेटा रीडर मेरा कारण भरने का कारण नहीं है (यह कुछ संबंधित था, लेकिन थोड़ा अलग था)। मैं नेटवर्क की भीड़ को खत्म करने के लिए स्थानीय मशीन पर बीएलओबी को रखने के पैगंबरबील के समाधान का उपयोग करने जा रहा हूं, लेकिन स्थानीय मशीन पर स्टोर करने के लिए किसी डेटासेट से निपटने वाले किसी भी व्यक्ति के लिए, डेटारिएडर एक प्रभावी समाधान होना चाहिए। –