यदि रिलेशनल डेटाबेस स्केल नहीं करते हैं, तो कुछ भी नहीं करता है। स्केलिंग समस्याओं के बारे में चिंता न करें।
एसक्यूएल को कुछ प्रकार के विश्लेषण के साथ समस्याएं हैं, लेकिन समस्या को ट्रिगर करने में बहुत डेटा नहीं है। उदाहरण के लिए, एक स्तंभ के साथ एक एकल तालिका पर विचार करें जो एक अद्वितीय कुंजी के आधार पर अन्य पंक्तियों का संदर्भ देती है। आमतौर पर, इसका उपयोग ट्री संरचना बनाने के लिए किया जा सकता है। आप तेजी से SQL कथन लिख सकते हैं जो संबंधित पंक्ति को संदर्भित करता है। या संबंधित पंक्ति के संबंधित पंक्ति। वास्तव में आप किसी भी विशिष्ट संख्या में छलांग लगा सकते हैं। लेकिन अगर, प्रत्येक पंक्ति के लिए, आप श्रृंखला में पहली संबंधित पंक्ति पर एक क्षेत्र का चयन करना चाहते हैं जो कुछ मानदंड को पूरा करता है, तो यह जटिल हो जाता है।
राष्ट्र, प्रांत / राज्य, काउंटी, शहर और गांव के स्तर पर कार्यालय स्थानों की एक तालिका पर विचार करें, प्रत्येक कार्यालय के साथ कार्यालय जिसे वह रिपोर्ट करता है। इस बात की कोई गारंटी नहीं है कि प्रत्येक कार्यालय का रिपोर्टिंग कार्यालय केवल एक स्तर का है। कार्यालयों के एक चयनित सेट के लिए, सभी एक स्तर पर नहीं, आप प्रत्येक के संबंधित राष्ट्रीय कार्यालय को सूचीबद्ध करना चाहते हैं। इसके लिए SQL मूर्तियों के छोरों की आवश्यकता होती है और आज भी एक लंबा समय लगेगा। (मुझे 30 कार्यालयों के चयन पर 30 सेकंड मिलते थे, लेकिन यह बहुत समय पहले था - और संग्रहीत प्रक्रियाओं पर स्विच करने से थोड़ी मदद मिली।)
तो विकल्प यह है कि पूरी संरचना को डेटा के एक बड़े ब्लॉक में रखा जाए, उसे लेबल किया जाए और उसे स्टोर किया जाए। जब आप डेटा का विश्लेषण करना चाहते हैं, तो एक बार में सभी को मेमोरी में पढ़ें, संरचना को ट्रैक करने के लिए पॉइंटर्स सेट करना, और आप एक आंख की झपकी में कुछ मिलियन कार्यालयों को संसाधित कर सकते हैं।
इसमें से किसी का भी डेटा की मात्रा से कोई लेना-देना नहीं है। कुंजी डेटा के संगठन की प्रकृति है। यदि एक रिलेशनल लेआउट मदद करता है, तो एक आरडीबीएमएस वह है जो आप चाहते हैं। यदि नहीं, तो कुछ प्रकार का बल्क स्टोरेज थोड़े समय से लेकर क्वाड्रिलियन तेजी से कुछ भी होने वाला है।
ध्यान दें कि यदि डेटा का इन सेटों में से एक मेमोरी में फिट होने के लिए बहुत बड़ा हो जाता है, तो आपका गैर-SQL डेटाबेस किसी भी अधिक काम नहीं करता है। एक और समस्या है जब आपको एक समय में एक से अधिक ब्लॉक से डेटा की आवश्यकता होती है; आप यह कर सकते हैं यदि , और केवल अगर, सभी ब्लॉक एक ही बार में स्मृति में फिट होते हैं। और उपयोगकर्ता को लोड करने के दौरान इंतजार करना होगा।
यदि आपका रिलेशनल डेटाबेस आपको समस्याएँ उत्पन्न करने वाला है, तो इससे पहले कि आप इसमें बहुत अधिक डेटा डाल दें। एकमात्र स्केलिंग समस्या जो आपके प्रोग्राम के साथ हो सकती है जब डेटा का ब्लॉक जिसे आप nosql DB के लिए असेंबल कर रहे हैं - यदि आपको एक का उपयोग करना है - तो इसके लिए बहुत बड़ा हो जाता है। (स्मृति त्रुटियों के बारे में पढ़ें। नई भाषाएँ कभी-कभी स्मृति के साथ अजीब काम करती हैं।)