मैंने (पिछले 6 महीनों के लिए) बड़े पैमाने पर MongoDB का उपयोग किया है, एक पदानुक्रमित डेटा प्रबंधन प्रणाली का निर्माण कर रहा है, और मैं सेटअप की आसानी दोनों के लिए वाउच कर सकता हूं (इसे स्थापित करें, इसे चलाएं, इसका उपयोग करें!) और गति। जब तक आप अनुक्रमित के बारे में ध्यान से सोचते हैं, यह बिल्कुल चीख सकता है, गति-वार।
मैं कहता हूं कि कैसंड्रा, ट्विटर जैसी बड़े पैमाने पर परियोजनाओं के साथ उपयोग करने के कारण, बेहतर स्केलिंग कार्यक्षमता है, हालांकि मोंगोबीडी टीम वहां समानता पर काम कर रही है। मुझे यह बताना चाहिए कि मैंने कैसंड्रा का उपयोग ट्रायल-रन चरण से परे नहीं किया है, इसलिए मैं विस्तार से बात नहीं कर सकता।
मेरे लिए असली जीवनानंद, जब हम NoSQL डेटाबेस का आकलन कर रहे थे, तो क्वेरी थी - कैसंड्रा मूल रूप से सिर्फ एक विशाल कुंजी / मूल्य की दुकान है, और क्वेरी थोड़ा काल्पनिक है (कम से कम MongoDB की तुलना में), इसलिए प्रदर्शन के लिए आपके पास होगा मैनुअल इंडेक्स के एक प्रकार के रूप में काफी डेटा का डुप्लिकेट। दूसरी ओर, MongoDB, "उदाहरण के द्वारा क्वेरी" मॉडल का उपयोग करता है।
उदाहरण के लिए, मान लें कि आपको उपयोगकर्ताओं के संग्रह (RDMS तालिका के समतुल्य के लिए MongoDB parlance) मिला है। MongoDB अभिलेखों को दस्तावेज़ के रूप में संग्रहीत करता है, जो मूल रूप से बाइनरी JSON ऑब्जेक्ट हैं। उदाहरण के लिए:
{
FirstName: "John",
LastName: "Smith",
Email: "john@smith.com",
Groups: ["Admin", "User", "SuperUser"]
}
यदि आप उन सभी उपयोगकर्ताओं को ढूंढना चाहते हैं जिन्हें स्मिथ कहा जाता है, जिनके पास व्यवस्थापक अधिकार हैं, तो आप सिर्फ एक नया दस्तावेज़ बनाएंगे (जावास्क्रिप्ट का उपयोग करके व्यवस्थापक कंसोल पर, या अपनी पसंद की भाषा का उपयोग करके उत्पादन में):
{
LastName: "Smith",
Groups: "Admin"
}
... और फिर क्वेरी चलाते हैं। बस। तुलना, RegEx फ़िल्टरिंग आदि के लिए जोड़े गए ऑपरेटर हैं, लेकिन यह सब बहुत सरल है, और विकी-आधारित प्रलेखन बहुत अच्छा है।