प्रश्न बहुत व्यापक है, लेकिन मैं अपनी क्षमता के अनुसार इसका उत्तर देने का प्रयास करूंगा।
मैं आमतौर पर इस तरह के सवालों के जवाब देना पसंद नहीं करता क्योंकि ऐसा लगता है कि आपने SO में आने से पहले बहुत कम शोध किया था। ऐसा भी लगता है कि आप एप्लिकेशन और डेटाबेस भूमिकाओं से भ्रमित हैं। मैं कम से कम आपको कुछ सामग्री/विचारों के साथ शुरू करूंगा और आपको स्वयं निर्णय लेने दूंगा।
बैकएंड डिज़ाइन के लिए कोई "सिल्वर बुलेट" नहीं है, खासकर जब डेटाबेस की बात आती है। SQL डेटाबेस आमतौर पर अधिकांश डेटाबेस कार्यक्षमता में बहुत अच्छे होते हैं, और ठीक ही ऐसा; यह एक ऐसी तकनीक है जो बहुत परिपक्व है और किसी कारण से समय की कसौटी पर खरी उतरी है। अधिकांश एनओएसक्यूएल समाधान विशेष उद्देश्यों के लिए विशिष्ट हैं। उदाहरण के लिए:यदि आप बहुत सारी जानकारी लॉग कर रहे थे, तो आप कैसेंड्रा को देखना चाहेंगे। यदि आप बहुत सारे संबंधपरक डेटा के साथ काम कर रहे थे, तो आप Neo4j (या RMDBS के लिए PostgreSQL/MySQL) जैसे कुछ का उपयोग करना चाहेंगे। यदि आप बहुत सारे रीयल-टाइम डेटा के साथ काम कर रहे थे, तो आप शायद रेडिस को देखना चाहेंगे।
कुछ कारणों से NOSQL बनाम SQL से पूछना बेवकूफी है:
एनओएसक्यूएल सामान्य रूप से एक खराब शब्द है। और इसका मतलब "नो एसक्यूएल" नहीं है। इसका मतलब है "न केवल एसक्यूएल"। दुर्भाग्य से इस शब्द ने डेटाबेस के सबसे ध्रुवीय विपरीत को भी समाहित कर लिया है।
केवल आप ही अपने एप्लिकेशन की पूर्ण कार्यक्षमता को जानते हैं। आप जो हासिल करना चाहते हैं, उसकी बुनियादी बातों के बारे में मुझे पता होने पर भी, मैं आपको कोई निश्चित जवाब नहीं दे सका। न ही कोई और कर सकता है। यह अत्यधिक व्यक्तिपरक है, और फिर, केवल आप ही जानते हैं कि आपके आवेदन को क्या करना चाहिए।
सबसे बड़ा कारण:यह 2014 है। एक डेटाबेस क्यों? दस साल पहले "डेटाबेसएक्स बनाम डाटाबेसवाई" एक व्यावहारिक प्रश्न रहा होगा। अब, आप मिनटों में कई डेटाबेस का मज़बूती से उपयोग करने के लिए कई एप्लिकेशन फ्रेमवर्क को कॉन्फ़िगर कर सकते हैं। कहानी का नैतिक:प्रत्येक डेटाबेस का उसके विशेष उद्देश्य के लिए उपयोग करें। बहुभाषाविद दृढ़ता पर अधिक यहां ।
जहां तक फेसबुक जाता है:पांच मिनट की Google खोज से पता चलता है कि उन्होंने अतीत में किन बैकएंड तकनीकों का उपयोग किया है, और उनके कुछ मौजूदा बैकएंड समाधानों पर शोध करना इतना मुश्किल नहीं है। आप फेसबुक नहीं हैं। आपको अभी एक अरब उपयोगकर्ताओं के लिए तैयारी करने की आवश्यकता नहीं है। सरल, सिद्ध तकनीकों से शुरू करें। यह आपको स्वाभाविक रूप से आपके आवेदन को स्केल करने देगा। जब वे प्रौद्योगिकियां बाधा बनने लगती हैं, तो स्केलेबिलिटी के बारे में चिंतित रहें।
मुझे आशा है कि इससे आपको अपनी कोडिंग यात्रा शुरू करने में मदद मिली होगी, लेकिन अगर आपको कोड में समस्या हो रही है तो कृपया अंतिम उपाय के रूप में स्टैक ओवरफ़्लो का उपयोग करें। तत्काल जाने के लिए नहीं।