मैं निम्न स्थितियों में डेटाबेस प्रदर्शन को बेहतर बनाने के तरीकों की तलाश में हूं।MongoDB में अद्यतन() और save() के प्रदर्शन में सुधार कैसे करें?
नमूना आवेदन के रूप में, मैंने आज एक काफी सरल ऐप लिखा है जो कुछ खोजशब्दों की खोज के लिए ट्विटर स्ट्रीमिंग एपीआई का उपयोग करता है, तो मैं परिणाम MongoDB में संग्रहीत कर रहा हूं। ऐप Node.js. के साथ लिखा गया है
मैं 2 संग्रह संग्रहीत कर रहा हूं। कोई कीवर्ड और ट्वीट ट्वीट की एक सरणी संग्रहीत करता है जो उस ट्वीट का उल्लेख करते हुए प्रत्येक ट्वीट को संदर्भित करता है। इन्हें {अपर्ट: सत्य} के साथ .update() का उपयोग करके डेटाबेस में जोड़ा जा रहा है ताकि नई आईडी को 'आईडी' सरणी में जोड़ा जा सके।
इस संग्रह से एक नमूना दस्तावेज़ इस तरह दिखता है:
{ "_ id": ObjectId ("4e00645ef58a7ad3fc9fd9f9"), "ids": [ "ID1", "आईडी 2", "id3"], "कीवर्ड": "#chocolate" }
अद्यतन कोड:
keywords.update({keyword: key_word},{$push:{ids: id}},{upsert:true}, function(err){})
2 संग्रह इस तरह दिखता है और .save का उपयोग करके बस जोड़ रहे हैं()
{
"twt_id": "id1",
"tweet": { //big chunk of json that doesn't need to be shown }
}
मुझे यह अभी मेरी मैकबुक पर चल रहा है और यह लगभग 2 घंटे तक जा रहा है। मैं डेटा के लॉट संग्रहीत कर रहा हूं, शायद प्रति सौ सौ दस्तावेज़। अभी मोंगोड में वस्तुओं की संख्या 120k + है।
जो मैं देख रहा हूं वह यह है कि डेटाबेस प्रक्रिया के लिए सीपीयू उपयोग 84% जितना ऊंचा हो रहा है और मैंने हाल ही में परीक्षण शुरू करने के बाद लगातार धीरे-धीरे बढ़ रहा है।
मैं इंडेक्स सेट करने पर पढ़ रहा था, लेकिन चूंकि मैं दस्तावेज़ जोड़ रहा हूं और उनके खिलाफ प्रश्न नहीं चला रहा हूं, मुझे यकीन नहीं है कि इंडेक्स मदद करेगा या नहीं। एक पक्ष ने सोचा कि मेरे साथ हुआ यह है कि अपडेट() एक लुकअप कर रहा है क्योंकि मैं $ पुश का उपयोग कर रहा हूं और यह कि एक सूचकांक उसमें मदद कर सकता है।
मुझे मोंगोडीबी को लगातार बढ़ती मात्रा में सीपीयू खाने से क्या देखना चाहिए?
एक एक धीमी गति से डिस्क के साथ मैकबुक में ट्वीट की आईडी डालें संभावना नहीं है बेंचमार्क प्रदर्शन और @Blackmoon स्वीकार किए जाते हैं नवीनतम मैकबुक हार्डवेयर –
साथ प्रदर्शन problems..even की बात के लिए सही विकल्प उत्तर अन्यथा सुझाता है। – hplbsh