मैं एक डेटाबेस विशेषज्ञ नहीं हूं और कोई औपचारिक कंप्यूटर विज्ञान पृष्ठभूमि नहीं है, इसलिए मेरे साथ सहन करें। मैं वास्तविक विश्व नकारात्मक चीजों के प्रकार जानना चाहता हूं जो कि v4 से पहले के एक पुराने MongoDB संस्करण का उपयोग करने पर हो सकता है , जो ACID के अनुरूप नहीं थे । यह किसी भी ACID गैर-योग्य डेटाबेस पर लागू होता है।
मैं समझता हूं कि MongoDB परमाणु संचालन कर सकता है , लेकिन वे "पारंपरिक लॉकिंग और जटिल लेनदेन का समर्थन नहीं करते हैं", ज्यादातर प्रदर्शन कारणों से। मैं डेटाबेस लेन-देन के महत्व को भी समझता हूं, और जब आपका डेटाबेस बैंक के लिए होता है, और आप कई रिकॉर्ड अपडेट कर रहे हैं, जो सभी सिंक में होना चाहिए, तो आप चाहते हैं कि लेनदेन प्रारंभिक अवस्था में वापस आ जाए, यदि पावर आउटेज इसलिए क्रेडिट खरीद, आदि के बराबर है।
लेकिन जब मैं MongoDB के बारे में बातचीत में शामिल होता हूं, तो हममें से जो डेटाबेस को वास्तव में कार्यान्वित करने के तकनीकी विवरणों को नहीं जानते हैं, वे इस तरह के बयानों के आसपास फेंकना शुरू करते हैं:
MongoDB, MySQL और Postgres की तुलना में तेज़ है, लेकिन एक लाख में 1 की तरह एक छोटा सा मौका है, कि यह "सही ढंग से काम नहीं करेगा"।
वह "सही ढंग से नहीं बचाएगा" भाग इस समझ का जिक्र है: यदि आप MongoDB को लिख रहे हैं, तो तुरंत एक पावर आउटेज सही है, एक विशेष रिकॉर्ड के लिए एक मौका है (कहते हैं कि आप 10 विशेषताओं वाले दस्तावेज़ों में पृष्ठदृश्य ट्रैक कर रहे हैं प्रत्येक), कि दस्तावेजों में से एक ने केवल 5 विशेषताओं को बचाया ... जिसका अर्थ है कि समय के साथ आपके पेजव्यू काउंटर "थोड़ा" बंद होने जा रहे हैं। आपको कभी पता नहीं चलेगा कि आप कितना जानते हैं, वे 99.999% सही होंगे, लेकिन 100% नहीं। ऐसा इसलिए है, क्योंकि जब तक आप इसे विशेष रूप से एक सामान्य परमाणु संचालन नहीं बनाते हैं , तब तक ऑपरेशन परमाणु होने की गारंटी नहीं है।
तो मेरा सवाल यह है कि MongoDB कब और क्यों "सही ढंग से नहीं बचा सकता है" की सही व्याख्या क्या है? ACID के कौन से भाग संतुष्ट नहीं करते हैं, और किन परिस्थितियों में, और आपको कैसे पता चलेगा कि आपके डेटा का 0.001% बंद है? क्या यह किसी तरह तय नहीं किया जा सकता है? यदि नहीं, तो इसका मतलब यह है कि आपको अपनी users
तालिका जैसी चीज़ों को MongoDB में संग्रहीत नहीं करना चाहिए , क्योंकि कोई रिकॉर्ड सहेज नहीं सकता है। लेकिन फिर, उस 1 / 1,000,000 उपयोगकर्ता को "फिर से साइन अप करने की कोशिश" करने की आवश्यकता हो सकती है, नहीं?
मैं सिर्फ एक सूची की तलाश कर रहा हूं कि कब / क्यों नकारात्मक चीजें एक गैर-कानूनी डेटाबेस जैसे कि MongoDB के साथ होती हैं, और आदर्श रूप से अगर कोई मानक वर्कअराउंड है (जैसे पृष्ठभूमि डेटा को क्लीन करने के लिए नौकरी चलाना, या केवल इसके लिए SQL का उपयोग करना, आदि) ।