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

क्या मोंगोडीबी को प्रति अनुरोध कई बार पूछना ठीक है?

$in के बारे में प्रश्न का उत्तर देने के लिए....

मैंने निम्नलिखित परिदृश्य के साथ कुछ प्रदर्शन परीक्षण किए:

संग्रह में ~24 मिलियन दस्तावेज़
उन दस्तावेज़ों में से 1 मिलियन को एक कुंजी (अनुक्रमित) के आधार पर देखें
.NET से CSharp ड्राइवर का उपयोग करना

परिणाम:
एक बार में 1 क्वेरी करना, सिंगल थ्रेडेड :109s
एक बार में 1 क्वेरी करना, मल्टी थ्रेडेड:48s
$in, सिंगल थ्रेडेड=20s
क्वेरी का उपयोग करके एक बार में 100K क्वेरी करना $in, मल्टी थ्रेडेड=9s

. का उपयोग करके एक बार में 100K

तो एक बड़े $in (अधिकतम क्वेरी आकार तक सीमित) का उपयोग करके उल्लेखनीय रूप से बेहतर प्रदर्शन।

अपडेट करें: नीचे दी गई टिप्पणियों के बाद $in विभिन्न चंक आकारों के साथ कैसा प्रदर्शन करता है (क्वेरी मल्टी-थ्रेडेड):

एक बार में 10 क्वेरी करना (100000 बैच) =8.8s
एक बार में 100 क्वेरी करना (10000 बैच) =4.32s
एक बार में 1000 क्वेरी करना (1000 बैच) =4.31s
10000 क्वेरी करना एक बार में (100 बैच) =8.4s
एक बार में 100000 क्वेरी करना (10 बैच) =9 (प्रति मूल परिणाम ऊपर)

इसलिए $in क्लॉज बनाम राउंड ट्रिप की संख्या में कितने मान बैच अप करने के लिए एक स्वीट-स्पॉट प्रतीत होता है




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगोडब स्थानीय सर्वर शुरू करने में असमर्थ

  2. क्लस्टर नियंत्रण के साथ डेटाबेस उपयोगकर्ता प्रबंधन

  3. ClusterControl सलाहकारों के साथ MongoDB की निगरानी और सुरक्षा

  4. MongoDB में कनेक्शन स्ट्रिंग (उदाहरण के साथ)

  5. एक प्रमुख फ़ील्ड द्वारा MongoDB संग्रह में सभी डुप्लिकेट दस्तावेज़ खोजें