MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MS SQL सर्वर के बजाय MongoDB का उपयोग करने के पेशेवरों और विपक्ष

मैं स्वयं नोएसक्यूएल डेटाबेस पर स्टार्टर हूं। इसलिए मैं संभावित डाउन वोटों की कीमत पर इसका उत्तर दे रहा हूं लेकिन यह मेरे लिए सीखने का एक शानदार अनुभव होगा।

  • यह बताने के लिए कि क्या MongoDB ऐसे डेटा को रखने के लिए अच्छा है, जो अंततः समय सीमा के विरुद्ध पूछताछ की जाएगी (उदाहरण के लिए एक निर्दिष्ट घंटे के बीच किसी विशेष कैमरे की सभी छवियों को पुनर्प्राप्त करें)? मेरे मामले के लिए दस्तावेज़ आधारित स्कीमा डिज़ाइन के बारे में कोई सुझाव?

MongoDB एक दस्तावेज़ उन्मुख db होने के कारण, भीतर में क्वेरी करने में अच्छा है एक समुच्चय (आप इसे दस्तावेज़ कहते हैं)। चूंकि आप पहले से ही प्रत्येक कैमरे के डेटा को अपनी तालिका में संग्रहीत कर रहे हैं, MongoDB में आपके पास एक अलग संग्रह होगा प्रत्येक कैमरे के लिए बनाया गया। यहां बताया गया है आप दिनांक सीमा क्वेरी निष्पादित करते हैं।

  • सर्वर (सीपीयू, रैम, डिस्क) के स्पेक्स क्या होने चाहिए? कोई सुझाव?

सभी NoSQL डेटा बेस स्केल-आउट . के लिए बनाए गए हैं कमोडिटी हार्डवेयर पर। लेकिन जिस तरह से आपने प्रश्न पूछा है, हो सकता है कि आप स्केलिंग-अप द्वारा प्रदर्शन में सुधार करने के बारे में सोच रहे हों . आप एक उचित मशीन से शुरू कर सकते हैं और जैसे-जैसे लोड बढ़ता है, आप अधिक सर्वर (स्केलिंग-आउट) जोड़ना जारी रख सकते हैं। आपको एक उच्च अंत सर्वर की योजना बनाने और खरीदने की आवश्यकता नहीं है।

  • क्या मुझे इस परिदृश्य के लिए साझाकरण/प्रतिकृति पर विचार करना चाहिए (प्रतिलिपि सेट को सिंक करने के लिए लिखित रूप में प्रदर्शन पर विचार करते समय)?

MongoDB संपूर्ण db को लॉक कर देता है एक ही लिखने के लिए (लेकिन अन्य कार्यों के लिए पैदावार) और उन प्रणालियों के लिए है जो लिखने की तुलना में अधिक पढ़ते हैं। तो यह इस बात पर निर्भर करता है कि आपका सिस्टम कैसा है। शार्डिंग के कई तरीके हैं और डोमेन विशिष्ट होना चाहिए। एक सामान्य उत्तर संभव नहीं है। हालाँकि कुछ उदाहरण दिए जा सकते हैं जैसे भूगोल, शाखाओं आदि द्वारा शार्डिंग।

यह भी पढ़ें CAP प्रमेय का एक सादा अंग्रेजी परिचय

शार्डिंग पर टिप्पणी के उत्तर के साथ अपडेट किया गया

उनके दस्तावेज़ीकरण के अनुसार , आपको एक शार्प किए गए क्लस्टर को परिनियोजित करने पर विचार करना चाहिए, यदि:

तो अंतिम बिंदु के आधार पर हाँ। ऑटो-शेयरिंग फीचर लिखने के पैमाने के लिए बनाया गया है। उस स्थिति में, आपके पास प्रति शार्ड . के लिए एक राइट लॉक होता है , प्रति डेटाबेस . के अनुसार नहीं . लेकिन मेरा एक सैद्धांतिक जवाब है। मेरा सुझाव है कि आप 10gen.com समूह से परामर्श लें।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb असंभव (?) E11000 डुप्लिकेट कुंजी त्रुटि डुप्ली कुंजी जब upserting

  2. psycopg2 सिंटैक्स त्रुटि के साथ कई कथन निष्पादित करने में विफल रहता है

  3. MongoDB PHP सरणी के साथ $in का उपयोग कर रहा है

  4. मोंगोडीबी $घटाना

  5. rmongodb:$ या क्वेरी में उपयोग करना