सरल डीबी में कुछ स्केलेबिलिटी सीमाएं हैं। आप केवल शेर्डिंग द्वारा स्केल कर सकते हैं और इसमें मोंगोडब या कैसंड्रा की तुलना में अधिक विलंबता है, इसकी एक थ्रूपुट सीमा है और इसकी कीमत अन्य विकल्पों की तुलना में अधिक है। स्केलेबिलिटी मैनुअल है (आपको शेड करना होगा)।
यदि आपको व्यापक क्वेरी विकल्प की आवश्यकता है और आपके पास उच्च पढ़ने की दर है और आपके पास इतना डेटा नहीं है तो mongodb बेहतर है। लेकिन स्थायित्व के लिए, आपको मास्टर/गुलाम के रूप में कम से कम 2 mongodb सर्वर उदाहरणों का उपयोग करने की आवश्यकता है। अन्यथा आप अपने डेटा के अंतिम मिनट को खो सकते हैं। स्केलेबिलिटी मैनुअल है। यह सरलीब से बहुत तेज है। Autosharding 1.6 संस्करण में लागू किया गया है।
कैसंड्रा में कमजोर क्वेरी विकल्प हैं लेकिन पोस्टग्रेस्क्ल के रूप में टिकाऊ है। यह उच्च डेटा आकार पर मोन्गो और तेज़ जितना तेज़ है। कैसंड्रा पर पढ़ने के संचालन की तुलना में ऑपरेशन लिखना तेज है। यह ec2 उदाहरणों को फायर करके स्वचालित रूप से स्केल कर सकता है, लेकिन आपको कॉन्फ़िगरेशन फ़ाइलों को थोड़ा सा संशोधित करना होगा (यदि मुझे सही याद है)। यदि आपके पास डेटा कैसंड्रा के टेराबाइट्स हैं तो आपकी सबसे अच्छी शर्त है। आपके डेटा को दागने की कोई ज़रूरत नहीं है, इसे 1 दिन से वितरित किया गया था। आपके पास अपने सभी डेटा के लिए कई प्रतियां हो सकती हैं और यदि कुछ सर्वर मर चुके हैं तो यह स्वचालित रूप से परिणामों को लाइव से वापस कर देगा और मृत सर्वर के डेटा को दूसरों को वितरित करेगा। यह अत्यधिक गलती सहनशील है। आप किसी भी उदाहरण को शामिल कर सकते हैं, अन्य विकल्पों की तुलना में स्केल करना बहुत आसान है। इसमें मजबूत नेट और जावा क्लाइंट विकल्प हैं। उनके पास कनेक्शन पूलिंग, लोड बैलेंसिंग, मृत सर्वरों का अंकन, ...
एक और विकल्प बड़े डेटा के लिए हैडऑप है, लेकिन यह अन्य लोगों के रूप में रीयलटाइम नहीं है, आप डेटावेयरिंग के लिए हैडोप का उपयोग कर सकते हैं। न तो कैसंड्रा या मोंगो के पास लेन-देन होते हैं, इसलिए यदि आपको लेन-देन की आवश्यकता है तो पोस्टग्रेस्क्ल एक बेहतर फिट है। एक और विकल्प अमेज़ॅन आरडीएस है, लेकिन इसका प्रदर्शन खराब है और कीमत अधिक है। यदि आप डेटाबेस या सरलीब का उपयोग करना चाहते हैं तो आपको डेटा कैशिंग की आवश्यकता भी हो सकती है (उदाहरण: memcached)।
वेब ऐप्स के लिए, यदि आपका डेटा छोटा है तो मैं मोन्गो की सलाह देता हूं, अगर यह बड़ा कैसंड्रा बेहतर है। आपको मोंगो या कैसंद्रा के साथ कैशिंग परत की आवश्यकता नहीं है, वे पहले से ही तेज हैं। मैं सरलीब की अनुशंसा नहीं करता, यह आपको अमेज़ॅन के लिए भी ताला लगा देता है जैसा आपने कहा था।
यदि आप सी #, जावा या स्कैला का उपयोग कर रहे हैं तो आप एक इंटरफेस लिख सकते हैं और इसे डेटा एक्सेस लेयर के लिए मोंगो, माइस्क्ल, कैसंड्रा या कुछ और के लिए कार्यान्वित कर सकते हैं। गतिशील भाषाओं में यह आसान है (उदाहरण के लिए रग, पायथन, PHP)। यदि आप चाहते हैं तो आप उनमें से दो के लिए एक प्रदाता लिख सकते हैं और केवल एक कॉन्फ़िगरेशन परिवर्तन द्वारा रनटाइम में स्टोरेज को बदल सकते हैं, वे सभी संभव हैं। मोंगो, कैसंड्रा और सरलीडब के साथ विकास डेटाबेस से आसान है, और वे स्कीमा से मुक्त हैं, यह क्लाइंट लाइब्रेरी/कनेक्टर पर भी निर्भर करता है जिसका आप उपयोग कर रहे हैं। सबसे आसान एक मोंगो है। कैसंद्रा में प्रति टेबल केवल एक इंडेक्स है, इसलिए आपको अन्य इंडेक्स स्वयं प्रबंधित करना होगा, लेकिन 0.7 कैसंड्रा माध्यमिक इंडेक्स के रिलीज के साथ मुझे पता चलेगा। यदि आप को करना है तो आप उनमें से किसी के साथ भी शुरुआत कर सकते हैं और इसे भविष्य में बदल सकते हैं।
"लेकिन स्थायित्व के लिए, आपको कम से कम 2 mongodb सर्वर उदाहरणों को मास्टर/गुलाम के रूप में उपयोग करने की आवश्यकता है। अन्यथा आप अपने डेटा का अंतिम मिनट खो सकते हैं।" MongoDB 1.8 के बाद एकल सर्वर स्थायित्व का समर्थन करता है – dan