मैं एक नई वेब परियोजना को डिजाइन कर रहा हूँ और, कुछ विकल्प scalability लक्ष्य अध्ययन करने के बाद, मैं दो डेटाबेस समाधान के साथ आया था:स्थानीय SQLite बनाम रिमोट MongoDB
- स्थानीय SQLite फ़ाइलों ध्यान से एक स्केलेबल फैशन के लिए बनाया गया (एक प्रत्येक एक्स उपयोगकर्ताओं के लिए नई डेटाबेस फ़ाइल, लिखने के रूप में उपयोगकर्ता सामग्री पर निर्भर करेगा, कोई क्रॉस-उपयोगकर्ता डेटा निर्भरता नहीं है);
- रिमोट मोंगोडीबी सर्वर (जैसे Mongolab), क्योंकि मेरा होस्ट सर्वर मोंगोडीबी की सेवा नहीं करता है।
मुझे वर्तमान साझा मेजबान पर MySQL सर्वर पर भरोसा नहीं है, क्योंकि यह बहुत बार नामित होता है (और मुझे अन्य होस्ट पर भी MySQL के साथ समस्याएं थीं)। इसी कारण से मैं पोस्टग्रेज़ का उपयोग करने के लिए नहीं जा रहा हूं। SQLite के
सकारात्मक:
- यह स्थानीय है, इसलिए इसमें तेजी से होना चाहिए (मैं ठीक से सूचकांक और लेन-देन का उपयोग कर का ध्यान रखेंगे);
- मुझे टीसीपी स्नीफिंग के बारे में चिंता करने की आवश्यकता नहीं है, क्योंकि मोंगो वायर प्रोटोकॉल is not crypted;
- मुझे सर्वर आउटेज के बारे में चिंता करने की आवश्यकता नहीं है, क्योंकि SQLite सर्वर रहित है। MongoDB के
सकारात्मक:
- यह और अधिक आसानी से स्केलेबल है,
- मुझे विभाजन डेटाबेस पर चिंता करने की आवश्यकता नहीं है, क्योंकि स्केलेबिलिटी प्राकृतिक लगती है;
- मुझे स्कीमा परिवर्तनों के बारे में चिंता करने की आवश्यकता नहीं है, क्योंकि मोंगो स्कीमालेस और SQLite doesn't fully support alter table (विशेष रूप से कई उत्पादन फ़ाइलों को बदलने पर विचार करने आदि)।
मुझे निर्णय लेने में मदद चाहिए (और शायद तीसरा विकल्प मानें)। लिखने और पढ़ने के संचालन बढ़ने पर कौन सा बेहतर होता है?
मैं रूबी का उपयोग करने जा रहा हूं।
मोंगो डीबी को लिखने के संचालन के लिए अनुकूलित किया गया है – Adrian
@ एड्रियन: यह काफी अधिक है :-) –