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

क्या MongoDB में _id प्रकार को पूर्णांक में बदलना बुरा है?

नहीं, यह बिल्कुल भी बुरा नहीं है और वास्तव में अंतर्निहित ObjectId . है सूचकांक के भीतर काफी बड़ा है, इसलिए यदि आपको लगता है कि आपके पास कुछ बेहतर है तो _id के डिफ़ॉल्ट मान को बदलने के लिए आपका स्वागत है। जो कुछ भी क्षेत्र।

लेकिन, और यह एक बड़ा लेकिन है , डिफ़ॉल्ट रूप से तैयार किए गए ObjectId . से दूर जाने का निर्णय लेते समय कुछ विचार होते हैं , विशेष रूप से ऑटो इंक्रीमेंटिंग _ids का उपयोग करते समय जैसा कि यहां दिखाया गया है:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field

मल्टी थ्रेडिंग इतनी बड़ी समस्या नहीं है क्योंकि findAndModify और परमाणु ताले वास्तव में इसका ख्याल रख सकते हैं, लेकिन फिर आप अपनी पहली समस्या में आ गए। findAndModify सबसे तेज़ कार्य नहीं है और न ही सबसे हल्का है और नियमित रूप से इसका उपयोग करते समय महत्वपूर्ण प्रदर्शन गिरावट देखी गई है।

findAndModify . के बिना भी, आपको इसे स्वयं करने के ऊपरी हिस्से पर भी विचार करना होगा . प्रत्येक डालने के लिए आपको एक अतिरिक्त क्वेरी की आवश्यकता होगी। कल्पना कीजिए कि आपके पास एक अद्वितीय आईडी है जिसे आपको हर बार सम्मिलित करने की विशिष्टता के बारे में पूछना है। अंतत:आपकी डालने की दर कम होकर क्रॉल हो जाएगी और आपका लॉक समय बढ़ जाएगा।

बेशक ObjectId सम्मिलन से पहले डेटाबेस को छूकर अपनी विशिष्टता की जांच या निर्माण किए बिना अद्वितीय होने में वास्तव में अच्छा है, इसलिए इसमें यह ओवरहेड नहीं है।

अगर आपको अभी भी एक पूर्णांक _id आपके परिदृश्य के अनुकूल लगता है, तो इसके लिए जाएं, लेकिन ऊपर वर्णित ओवरहेड को ध्यान में रखें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - LEFT JOIN के समतुल्य जहाँ एक संग्रह मौजूद नहीं है

  2. संपत्ति मौजूद होने पर नेवला मॉडल की hasOwnProperty झूठी वापसी क्यों करती है?

  3. अगर मेरे पास एक स्ट्रिंग के रूप में एक मोंगो दस्तावेज़ आईडी है तो मैं इसके लिए _id के रूप में कैसे पूछूं?

  4. ऑब्जेक्ट आईडी के लिए मोंगोडीबी एग्रीगेशन प्रोजेक्ट स्ट्रिंग

  5. एक csv फ़ाइल में mongoexport कुल निर्यात