प्रकटीकरण: मैं एक MySQL कर्मचारी हूँ, MySQL क्लस्टर पर काम कर रहा हूँ।
मैं यह कहूंगा कि MySQL क्लस्टर, शार्प्ड MySQL + InnoDB से उच्चतर थ्रूपुट / होस्ट प्राप्त कर सकता है, बशर्ते कि:
- प्रश्न सरल हैं
- सभी डेटा स्मृति में फिट बैठता है
विलंबता के संदर्भ में, MySQL क्लस्टर में शार्क MySQL की तुलना में अधिक स्थिर विलंबता होनी चाहिए। विशुद्ध रूप से इन-मेमोरी डेटा के लिए वास्तविक विलंबता समान हो सकती है।
जैसे-जैसे प्रश्न अधिक जटिल होते जाते हैं, और डेटा डिस्क पर संग्रहीत होता जाता है, प्रदर्शन की तुलना अधिक भ्रामक हो जाती है। अधिक विशिष्ट उत्तर प्राप्त करने के लिए, आपको अपने आवेदन और आपके द्वारा किए जाने वाले प्रश्नों के बारे में और साथ ही मेजबानों की संख्या और डेटा की मात्रा का वर्णन करना होगा। MySQL क्लस्टर ने हाल ही में समानांतर स्थानीयकृत क्वेरी निष्पादन (AQL) प्राप्त किया है, जिसका अर्थ है कि यह कई मेजबानों में वितरित डेटा होने के बावजूद स्टैंडअलोन MySQLD के साथ प्रतिस्पर्धात्मक हो सकता है।
MySQL क्लस्टर वर्तमान में 48 से अधिक मेजबानों को 'शार्किंग' तक सीमित है। सिद्धांत में साझा MySQL की कोई सीमा नहीं है। हालाँकि, दिए गए लक्ष्य थ्रूपुट के लिए, MySQL क्लस्टर होस्ट की तुलना में कम MySQL क्लस्टर होस्ट की आवश्यकता हो सकती है।
जब आप प्रदर्शन के अलावा अन्य क्षेत्रों को देखते हैं तो अधिक दिलचस्प अंतर होते हैं:
- MySQL क्लस्टर सभी शार्क के मनमाने प्रश्नों का समर्थन करता है
- MySQL क्लस्टर सभी शार्क के मनमाने लेनदेन का समर्थन करता है
- MySQL क्लस्टर स्वचालित विफलता और पुनर्प्राप्ति के साथ शार्क के तुल्यकालिक प्रतिकृति का समर्थन करता है
- MySQL क्लस्टर ऑनलाइन ऐड नोड (क्लस्टर विस्तार) का समर्थन करता है
- साझा MySQL अधिक 'अपना खुद का रोल' है
आपके एप्लिकेशन में निर्मित शार्डिंग होने से आपको अधिकतम स्केलिंग क्षमता मिलती है, लेकिन जटिलता को जोड़ता है और क्रॉस-शार्प प्रश्नों और संचालन के संदर्भ में आपके लचीलेपन को सीमित करता है। यदि आपकी शार्पिंग समय से पहले है तो यह आपके लिए कुछ समस्याओं की जड़ हो सकती है। MySQL क्लस्टर आपको अपने एप्लिकेशन को केवल सिंगल-शार्क होने के लिए विवश किए बिना कुछ लाभ प्राप्त करने देता है।
पिछले उत्तर के बारे में, कुछ स्पष्टीकरण:
"हालांकि MySQL क्लस्टर ACID- शिकायत है, यह यौगिक कुंजियों के साथ डेटा के लिए एक उपयुक्त भंडारण इंजन प्रदान नहीं करता है।"
MySQL क्लस्टर कंपाउंड प्राइमरी और सेकेंडरी कीज़ को सपोर्ट करता है। निश्चित नहीं है कि इसके बारे में 'उपयुक्त' क्या नहीं है। शायद पिछले पोस्टर की व्याख्या कर सकते हैं?
"डेटा नोड्स के एक विशेष सेट में संग्रहीत एक ही प्रमुख विशेषताओं के साथ डेटा रखने के लिए, आप निम्नलिखित कार्य कर सकते हैं:
- सभी डेटा नोड्स को ऑफ़लाइन ले जाएं, केवल उन डेटा नोड्स को छोड़ दें जिन्हें आप समान कुंजी विशेषताओं के साथ डेटा को घर में रखना चाहते हैं।
- अपने डेटा को MySQL क्लस्टर में लोड करें, जो केवल आपके चुनिंदा डेटा नोड्स को पॉप्युलेट करता है
- ऑनलाइन सभी डेटा नोड्स वापस लाएं "
यह गलत है। डेटा वितरण स्वतंत्र है जिसमें से नोड्स कभी भी ऑनलाइन होते हैं। MySQL क्लस्टर आपके द्वारा वर्णित अनुकूलन का समर्थन करने के लिए विभिन्न डेटा वितरण योजनाओं का समर्थन करता है। मैं यहां एक ब्लॉग पोस्ट में MySQL क्लस्टर में डेटा वितरण का वर्णन करता हूं: MySQL क्लस्टर में डेटा वितरण