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

मैं MongoDB बल्क प्रदर्शन को कैसे सुधार सकता हूं?

बैचों में बल्क इंसर्ट ऑपरेशंस भेजें क्योंकि इससे सर्वर पर कम ट्रैफिक आता है और इस प्रकार सभी को अलग-अलग स्टेटमेंट में नहीं भेजकर कुशल वायर ट्रांजेक्शन करता है, बल्कि सर्वर प्रतिबद्धता के लिए प्रबंधनीय विखंडू में टूट जाता है। इस दृष्टिकोण के साथ कॉलबैक में प्रतिक्रिया के लिए प्रतीक्षा करने में भी कम समय लगता है।

इसके साथ एक बेहतर तरीका होगा async का उपयोग करना मॉड्यूल इसलिए इनपुट सूची को लूप करना भी एक गैर-अवरुद्ध ऑपरेशन है। बैच का आकार चुनना अलग-अलग हो सकता है, लेकिन प्रति 1000 प्रविष्टियों में बैच इंसर्ट ऑपरेशन का चयन करना 16MB BSON हार्ड लिमिट के तहत रहना सुरक्षित बना देगा, क्योंकि संपूर्ण "अनुरोध" एक BSON दस्तावेज़ के बराबर है।

निम्नलिखित async का उपयोग करके प्रदर्शित करता है मॉड्यूल के सरणी के माध्यम से पुनरावृति करने के लिए और बार-बार इटरेटर फ़ंक्शन को कॉल करें, जबकि परीक्षण सही होता है। रोके जाने पर या कोई त्रुटि होने पर कॉलबैक कॉल करता है।

var bulk = col.initializeOrderedBulkOp(),
    counter = 0,
    len = array.length,
    buildModel = function(index){   
        return {
            "data": array[index],
            "metaData": {
                "hash": hash,
                "date": timestamp,
                "name": name
            }
        }
    };

async.whilst(
    // Iterator condition
    function() { return counter < len },

    // Do this in the iterator
    function (callback) {
        counter++;
        var model = buildModel(counter);
        bulk.insert(model);

        if (counter % 1000 == 0) {
            bulk.execute(function(err, result) {
                bulk = col.initializeOrderedBulkOp();
                callback(err);
            });
        } else {
            callback();
        }
    },

    // When all is done
    function(err) {
        if (counter % 1000 != 0) {
            bulk.execute(function(err, result) {
                console.log("More inserts.");
            }); 
        }           
        console.log("All done now!");
    }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB उन दस्तावेज़ों को प्रोजेक्ट करता है जिनकी संख्या 2 . से अधिक है

  2. मैं नेवला में एकाधिक दस्तावेज़ कैसे अपडेट कर सकता हूं?

  3. स्प्रिंग मोंगो पॉप्युलेटर एक के बाद एक

  4. Django के लिए PyMongo बनाम MongoEngine

  5. लार्वा ढांचे में मोंगोडब में कुल कैसे निष्पादित करें