MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB एकत्रीकरण को गति दें

आपकी क्वेरी के प्रदर्शन को बेहतर बनाने के लिए एग्रीगेशन फ्रेमवर्क क्या कर सकता है, इसकी वर्तमान में कुछ सीमाएँ हैं, लेकिन आप इसे निम्न तरीके से मदद कर सकते हैं:

db.my_collection.aggregate([
    { "$sort" : { "LOG_TYPE" : 1 } },
    { "$group" :{ 
        "_id": "$LOG_TYPE",
        "COUNT": { "$sum":1 }
    }}
])

LOG_TYPE पर एक प्रकार जोड़कर आप दस्तावेज़ों को क्रम में लाने के लिए ऑप्टिमाइज़र को LOG_TYPE पर एक इंडेक्स का उपयोग करने के लिए "मजबूर" करेंगे। यह कई तरीकों से प्रदर्शन में सुधार करेगा, लेकिन उपयोग किए जा रहे संस्करण के आधार पर अलग-अलग होगा।

वास्तविक डेटा पर यदि आपके पास डेटा $group चरण में आ रहा है, तो यह योग के संचय की दक्षता में सुधार करेगा। आप अलग-अलग क्वेरी प्लान देख सकते हैं जहां $sort के साथ यह शार्प की इंडेक्स का उपयोग करेगा। वास्तविक प्रदर्शन में यह सुधार प्रत्येक "बाल्टी" में मूल्यों की संख्या पर निर्भर करेगा - सामान्य तौर पर LOG_TYPE में केवल सात अलग-अलग मान होने से यह बेहद खराब शार्ड कुंजी बन जाता है, लेकिन इसका मतलब यह है कि यह सभी संभावना है कि निम्नलिखित कोड एक होगा अनुकूलित एकत्रीकरण की तुलना में बहुत तेज़:

db.my_collection.distinct("LOG_TYPE").forEach(function(lt) {
   print(db.my_collection.count({"LOG_TYPE":lt});
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं एकाधिक संग्रह के लिए मोंगोडब कुल फ़िल्टर कैसे कर सकता हूं?

  2. स्प्रिंग डेटा का उपयोग करके MongoDB में DBObject डालें

  3. MongoDB में जर्नलिंग का प्रबंधन

  4. सी # मोंगोडीबी - एकाधिक नेस्टेड सरणी तत्वों में आइटम कैसे जोड़ें और निकालें?

  5. नेवला उप-दस्तावेज़ बनाम नेस्टेड स्कीमा