के बिना mongodb क्वेरी प्रदर्शन की जांच कैसे कर सकता हूं मेरे पास एक क्वेरी है जो समाप्त होने में बहुत अधिक समय लेती है। मुझे कुछ प्रदर्शन परीक्षण करना पसंद है लेकिन जब मैं एक बार जांचता हूं (जो वर्तमान में ~ 30 सेकंड लेता है) क्वेरी बहुत तेजी से चलने लगती है (< 1 सेकंड)। मुझे लगता है कि इसे मोंगोड कैशिंग के साथ होना चाहिए। क्या मोंगोडब के लिए कैशिंग अक्षम करने का कोई तरीका है या किसी अन्य तरीके से मैं प्रदर्शन की जांच कर सकता हूं?मैं कैश
मैं mongohq में होस्ट किया गया mongodb का उपयोग कर रहा हूँ।
{"cursor"=>"BtreeCursor start_-1", "nscanned"=>5276, "nscannedObjects"=>5276, "n"=>25, "millis"=>3264, "nYields"=>0, "nChunkSkips"=>0, "isMultiKey"=>false, "indexOnly"=>false, "indexBounds"=>{"start"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]]}, "allPlans"=>[{"cursor"=>"BtreeCursor attendees_count_-1", "indexBounds"=>{"attendees_count"=>[[1.7976931348623157e+308, 1]]}}, {"cursor"=>"BtreeCursor images_count_-1", "indexBounds"=>{"images_count"=>[[1.7976931348623157e+308, 2]]}}, {"cursor"=>"BtreeCursor start_-1", "indexBounds"=>{"start"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]]}}, {"cursor"=>"BtreeCursor start_-1_end_-1", "indexBounds"=>{"start"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]], "end"=>[[{"$maxElement"=>1}, {"$minElement"=>1}]]}}, {"cursor"=>"BtreeCursor attendees._id_1 multi", "indexBounds"=>{"attendees._id"=>[[BSON::ObjectId('4f0b621e94bb688563000007'),BSON::ObjectId('4f0b621e94bb688563000007')], [BSON::ObjectId('4f0b647d5a8c00acde05236f'), BSON::ObjectId('4f0b647d5a8c00acde05236f')], [BSON::ObjectId('4f0b647d5a8c00acde052370'), BSON::ObjectId('4f0b647d5a8c00acde052370')], [BSON::ObjectId('4f0b647d5a8c00acde052371'), BSON::ObjectId('4f0b647d5a8c00acde052371')], [BSON::ObjectId('4f0b647d5a8c00acde052372'), BSON::ObjectId('4f0b647d5a8c00acde052372')], [BSON::ObjectId('4f0b647d5a8c00acde052373') ... (lots of Object IDs)]]}}}
सूचना है कि मैं समझाने के कुछ काटना क्योंकि यह बहुत लंबा था: रूबी ऑन रेल्स 3. यहाँ के साथ कार्यक्रम की व्याख्या है। जहां "ऑब्जेक्ट आईडी के बहुत सारे" हैं वहां बहुत सारी ऑब्जेक्ट आईडी (~ 400) थीं। सभी
धन्यवाद
मैं अभी भी अपने प्रारंभिक क्वेरी तेजी क्योंकि मैं याद करने के लिए सभी दस्तावेजों लोड नहीं कर सकता चलाना चाहते हैं। इसलिए, मैंने पहले से ही व्याख्या का उपयोग किया है, और देखा है कि यह क्वेरी लाने के लिए ~ 5000 दस्तावेज़ स्कैन करता है और मुझे लगता है कि 5000 दस्तावेज़ों के लिए 30 सेकंड बहुत अधिक हैं। यही कारण है कि मैं कैश के बिना एक ही प्रश्न करना जारी रखना चाहता हूं ताकि मैं गलत जांच न कर सकूं। – Gluz
क्या क्वेरी ने इंडेक्स का उपयोग किया था? प्रश्न में व्याख्या जोड़ने के लिए स्वतंत्र महसूस करें और मैं आउटपुट पर एक नज़र डाल सकता हूं। –
मूल संदेश में जोड़ा गया। – Gluz