2012-08-27 6 views
18

मोंगोडीबी संग्रह बनाम अपने सभी दस्तावेजों को हटाने के व्यापार-बंद क्या हैं (माना जाता है कि संग्रह तुरंत फिर से बनाया जाएगा)?मोंगोडीबी: अपने सभी दस्तावेजों को हटाने के लिए संग्रह बनाम छोड़ने के ट्रेड-ऑफ

उत्तर

19

यदि आप संग्रह से सभी दस्तावेजों को हटाते हैं, तो आप बहुत अधिक काम करेंगे (दस्तावेज़ के भंडारण को मुक्त कर रहे हैं, दस्तावेज़ प्रविष्टियों को इंगित करने वाली इंडेक्स प्रविष्टियों को साफ़ कर रहे हैं)। यदि आप इसके बजाय संग्रह को छोड़ देते हैं, तो यह केवल उस संग्रह को पुनः प्राप्त कर देगा जो संग्रह और इसकी अनुक्रमणिका का उपयोग करता है।

एक और अंतर यह है कि संग्रह छोड़ने से संग्रह की अनुक्रमणिका भी हटा दी जाएगी।

20

संग्रह को छोड़ने का लाभ यह है कि यह संग्रह के सभी दस्तावेज़ों को हटाने से कहीं अधिक तेज़ है। यदि आपका संग्रह वैसे भी "फिर से बनाया गया" होगा (मान लें कि इसमें इंडेक्स री-सृजन शामिल है), तो यह शायद सबसे आकर्षक विकल्प है।

पुस्तक MongoDB: The Definitive Guide के लेखकों (क्रिस्टीना चोडोरो और माइकल डीरोल्फ) एक प्रयोग है जहाँ वे एक अजगर स्क्रिप्ट जो एक drop बनाम एक 1000000 के remove रिकॉर्ड समय समाप्त हो गया प्रदान की गई। परिणाम drop और remove के लिए 46.08 सेकंड के लिए 0.01 सेकंड पर आए। अब जबकि सटीक समय हार्डवेयर और अन्य कारकों के आधार पर भिन्न हो सकते हैं, फिर भी यह इस बिंदु को दर्शाता है कि drop काफी तेज़ है।

संदर्भ: चोडोरो के।, डिरॉल्फ एम। (2010)। "मोंगोडीबी: द डिफिनिटिव गाइड।" ओ रेली मीडिया, इंक सेबस्टापोल, सीए, पीपी.25

+5

जवाब पर +1, लेकिन ड्रॉप निकालने बनाम के साथ एक चेतावनी है, और वह यह है कि जब आप एक sharded वातावरण में कर रहे हैं, वहाँ एक पुन: उपयोग से संबंधित विभिन्न संस्करणों पर कई कीड़े किया गया है गिराए गए संग्रह का नाम (या कुछ मामलों में भी उपसर्ग)। नवीनतम प्रासंगिक बग जो मुझे पता है वह यह है: https://jira.mongodb.org/browse/SERVER-4262 और यह 2.2 में तय किया गया है - अगर आप बहुत सारी बूंदों/पुनर्वास की योजना बना रहे हैं तो बस कुछ पता होना चाहिए । –

+0

टिप के लिए धन्यवाद, @AdamC! मुझे लगता है कि इस परिदृश्य मिश्रण में sharding/प्रतिकृति के साथ थोड़ा मुश्किल हो जाता है। मेरे घर में मेरी प्रयोगशाला में एक मास्टर/गुलाम प्रतिकृति कॉन्फ़िगरेशन है कि मुझे इसे आजमा देना होगा। – Aaron

1

संग्रह को हटाने और छोड़ना ज्यादातर कार्यान्वयन विस्तार है।

निकाला जा रहा है एक संग्रह आंतरिक स्थिति में से एक अद्यतन द्वारा एक कि ऐसा हो संग्रह में मौजूद है की आवश्यकता है।

गिराने एक संग्रह कुछ बड़े डेटा संरचनाओं को मुक्त डेटा फ़ाइलों के डेटाबेस के अंदर की आवश्यकता है।

संग्रहण संग्रह खाली होने तक एक-एक करके हटाने से संग्रह तेजी से तेज़ है।

मेटा डेटा अनुक्रमित तरह मौजूद संग्रह निकाल दिया जाता है बजाय जब इसकी गिरा दिया जाएगा।

स्रोत: MongDB विश्वविद्यालय पाठ्यक्रम

संबंधित मुद्दे