Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL बनाम मारियाडीबी:आपको क्या जानना चाहिए

MySQL और MariaDB दोनों डेटाबेस में एक निर्विवाद समानता है। वे दुनिया भर में डेटाबेस प्रबंधन प्रणालियों के बाद सबसे अधिक प्रकार के हैं। MySQL बनाम MariaDB संघर्ष विराम की आवश्यकता को समझने के लिए, हमें समय से थोड़ा पीछे हटना होगा।

मारियाडीबी तस्वीर में आने से पहले, यह सिर्फ MySQL डेटाबेस प्रबंधन प्रणाली ब्रह्मांड पर शासन कर रहा था। इसकी लोकप्रियता लंबे समय तक अडिग रही। कई लोगों द्वारा एक विश्वसनीय DBMS के रूप में इसकी प्राथमिकता इसकी संबद्ध बेस प्रोग्रामिंग भाषा, C++ के कारण भी है।

2008 में, सन माइक्रोसिस्टम्स द्वारा MySQL AB, MySQL आवास वाली स्वीडिश कंपनी, का अधिग्रहण तब हुआ। अंत में, 2010 में, Oracle कंपनी ने कदम बढ़ाया और Sun Microsystems का अधिग्रहण किया। तब से, Oracle ने MySQL का स्वामित्व, प्रबंधन और रखरखाव जारी रखा है।

हालाँकि, Oracle द्वारा इस डेटाबेस प्रबंधन प्रणाली के अधिग्रहण के दौरान, इसके प्रमुख डेवलपर्स और इंजीनियरों ने महसूस किया कि Oracle डेटाबेस सर्वर (एक वाणिज्यिक डेटाबेस) MySQL के साथ हितों का टकराव पैदा कर रहा था। इस घटना के कारण मारियाडीबी का निर्माण MySQL कोड के एक कांटे के रूप में हुआ।

उपयोगकर्ता वरीयताओं के संदर्भ में इन दो डेटाबेस प्रबंधन प्रणालियों की लोकप्रियता अभी भी काफी अधिक है। हालाँकि, रैंक के संदर्भ में, डेवलपर समुदाय MySQL को MariaDB की तुलना में थोड़ा अधिक ऊंचे स्थान पर रखता है।

MySQL बनाम MariaDB

यह आलेख कुछ प्रमुख विशेषताओं को उजागर करना चाहता है जो तुलनात्मक रूप से इन दो डेटाबेस प्रबंधन प्रणालियों को अलग करते हैं।

MySQL क्या है?

इस संबंधपरक डेटाबेस प्रबंधन प्रणाली का प्राथमिक उद्देश्य उपयोगकर्ता के डेटाबेस-संग्रहीत डेटा को व्यवस्थित करना है। इसका उपयोग अपाचे वेब सर्वर और PHP प्रोग्रामिंग भाषा के साथ होता है। यह विंडोज और लिनक्स ऑपरेटिंग सिस्टम वितरण के साथ लोकप्रिय है। डेटाबेस को क्वेरी करने के संदर्भ में, MySQL SQL भाषा का उपयोग करता है।

मारियाडीबी क्या है?

यह DBMS MySQL कोडबेस के कांटे के रूप में मौजूद है। यह एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम है। उद्यम और छोटे दोनों प्रकार के कार्य इसकी डेटा प्रोसेसिंग क्षमताओं से लाभान्वित होते हैं। आप इसे सुरक्षा, प्रदर्शन और उपयोगिता में सुधार के संबंध में एक बेहतर MySQL संस्करण के रूप में देख सकते हैं, इसके कई और शक्तिशाली इनबिल्ट सुविधाओं के शीर्ष पर।

MySQL बनाम MariaDB सुविधाओं का सारांश

MySQL और MariaDB दोनों अपने संबंधित उपयोगकर्ता समुदायों के लिए सुविधाओं का एक अनूठा सेट प्रदान करते हैं।

MySQL सुविधाएं

इसकी महत्वपूर्ण विशेषताएं निम्नलिखित हैं:

  • उच्च उपलब्धता
  • लचीलापन और मापनीयता
  • उच्च प्रदर्शन
  • वेब और डेटा में वेयरहाउस की ताकत
  • मजबूत लेनदेन समर्थन

MariaDB सुविधाएँ

इसकी महत्वपूर्ण विशेषताएं निम्नलिखित हैं:

  • पिछड़े संगतता समर्थन
  • Percona सर्वर, MySQL सर्वर का एक कांटा भी है।
  • ओपन-सोर्स सॉफ़्टवेयर
  • नए स्टोरेज इंजन सपोर्ट करते हैं (FederatedX, XtraDB, Maria, PBXT)
  • यह MySQL कम्युनिटी वर्जन का सीधा कांटा है।

MySQL बनाम MariaDB प्रदर्शन तुलना

मारियाडीबी इसके साथ जुड़े कई अनुकूलन के कारण MySQL की तुलना में बेहतर प्रदर्शन के दायरे को दर्शाता है। MySQL के वैकल्पिक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के रूप में इसके विकास के पीछे यह प्राथमिक दृष्टि है।

डेटाबेस दृश्य

एक साधारण डेटाबेस नियमित तालिकाओं से जुड़ा होता है। "दृश्य" को वर्चुअल डेटाबेस टेबल के रूप में दर्शाया जा सकता है। जिस तरह से आप नियमित डेटाबेस टेबल को क्वेरी करते हैं, उसी तरह आप इन वर्चुअल डेटाबेस टेबल को क्वेरी करते हैं। इसलिए, जिस तरह से आप दृश्यों को क्वेरी करते हैं, वह संबंधित डेटाबेस प्रबंधन प्रणाली के प्रदर्शन अनुकूलन को बहुत हद तक निर्धारित करता है।

MySQL में एक दृश्य को क्वेरी करने से एक क्वेरी परिणाम उत्पन्न होता है जो उस दृश्य से जुड़ी सभी तालिकाओं को बंडल करता है। यह क्वेरी अतिरिक्त दृश्य परिणाम उत्पन्न करती है जिनकी आवश्यकता नहीं है। मारियाडीबी अनुकूलन ऐसे अनावश्यक परिणाम सामान का ख्याल रखता है। एक डेटाबेस क्वेरी केवल इससे जुड़ी तालिकाओं की तलाश करेगी और कुछ भी अतिरिक्त नहीं लाएगी।

कॉलमस्टोर

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

फ़्लैश संग्रहण में बेहतर प्रदर्शन

MariaDB में MyRocks स्टोरेज इंजन अपने RocksDB डेटाबेस को जोड़ने के लिए जिम्मेदार है। इस डेटाबेस का प्राथमिक डिज़ाइन उद्देश्य उच्च स्तरीय डेटा संपीड़न के प्रावधान के माध्यम से बेहतर फ्लैश स्टोरेज प्रदर्शन को सुविधाजनक बनाना है।

विभाजित कुंजी कैश

यह प्रदर्शन सुविधा मारियाडीबी के प्रदर्शन में सुधार के लिए भी जिम्मेदार है। एक सामान्य कैश ऑपरेशन में कैश्ड प्रविष्टि को लॉक करने के लिए विभिन्न थ्रेड्स के बीच एक प्रतियोगिता शामिल होती है। इन शामिल तालों की सामूहिक पहचान म्यूटेक्स है। इन तालों का उपयोग करने के लिए इन म्यूटेक्स को पुराना करना होगा। इस प्रकार, एकाधिक थ्रेड अक्सर एक म्यूटेक्स के लिए प्रतिस्पर्धा करेंगे।

केवल एक विजेता धागा हो सकता है। अन्य थ्रेड्स जो सॉर्ट-आफ्टर म्यूटेक्स को पकड़ नहीं सकते हैं, उन्हें पहले विजेता थ्रेड का उपयोग करने के लिए लाइन में इंतजार करना पड़ता है। एक बार म्यूटेक्स जारी होने के बाद, एक और थ्रेड प्रतियोगिता होती है - एक शेड्यूल्ड ऑपरेशन करने के लिए म्यूटेक्स को सुरक्षित करने के इस प्रतिस्पर्धी दृष्टिकोण के परिणामस्वरूप निष्पादन में देरी होती है। परिणामस्वरूप डेटाबेस का प्रदर्शन भी धीमा हो जाता है।

सेगमेंटेड की कैश के मामले में, थ्रेड ऑपरेशंस एक अलग तरीका अपनाते हैं। एक पूरा पृष्ठ ताला और चाबी के नीचे नहीं है। इसके बजाय, पृष्ठ का एकमात्र प्रभावित भाग एक विशेष लक्षित खंड से संबद्ध है। यह अवधारणा उनके कार्यों के समानांतर निष्पादन के माध्यम से अपने कार्यों को पूरा करने वाले कई धागे की ओर ले जाती है। परिणामस्वरूप, अनुप्रयोग समांतरता के परिणामस्वरूप डेटाबेस बेहतर प्रदर्शन को अपनाता है।

वर्चुअल कॉलम

यह दिलचस्प फीचर मारियाडीबी डेटाबेस सपोर्ट के तहत भी है। वर्चुअल कॉलम की क्षमताएं डेटाबेस-स्तरीय गणनाओं के निष्पादन को पूरा करने में मारियाडीबी की सहायता करती हैं। यह कार्यक्षमता तब उपयोगी होती है जब एकाधिक अनुप्रयोगों को एक ही कॉलम तक पहुंच की आवश्यकता होती है। डेटाबेस उपयोगकर्ता को कार्य छोड़ने के बजाय डेटाबेस व्यक्तिगत ऐप-संबंधित गणनाओं को संभालता है। दुर्भाग्य से, MySQL इस सुविधा को अपनाने के लिए पर्याप्त भाग्यशाली नहीं है।

प्रश्नों का समानांतर निष्पादन

मारियाडीबी 10.0 के अनुसार, अब कई प्रश्नों को एक साथ या साथ-साथ निष्पादित करना संभव है। इस सुविधा का कार्यात्मक दृष्टिकोण एक दिलचस्प दृष्टिकोण लेता है। मास्टर निष्पादन के लिए निर्धारित सभी प्रश्नों को होस्ट करता है और फिर कुछ को दास को दोहराता है। यह इन प्रश्नों को एक ही समय में निष्पादित करने का अवसर बनाता है इसलिए समानांतर निष्पादन। इस समानांतरवाद क्वेरी निष्पादन सुविधा के मारियाडीबी के आलिंगन से इसे MySQL पर एक अमूल्य लाभ मिलता है।

थ्रेड पूलिंग

यह विशेषता भी MariaDB के क्षेत्र में एक और दिलचस्प अवधारणा है। इसके कार्यान्वयन से पहले, एक अनुरोधित डेटाबेस कनेक्शन प्रत्येक कनेक्शन को थ्रेड से जोड़ता है। इस प्रकार, एक सफल डेटाबेस कनेक्शन के लिए आधार आर्किटेक्चर "एक थ्रेड प्रति कनेक्शन" दृष्टिकोण था।

थ्रेड पूलिंग ने चीजें बदल दी हैं। डेटाबेस क्वेरी करने से पहले एक नया कनेक्शन खुले थ्रेड्स के पूल से चयन करता है। यह हर बार नए कनेक्शन अनुरोध की आवश्यकता होने पर नए थ्रेड खोलने की आवश्यकता को रोकता है। यह सुविधा तेजी से क्वेरी परिणामों को बढ़ावा देती है। MySQL एंटरप्राइज़ संस्करण इस सुविधा को होस्ट करता है, लेकिन इसके सामुदायिक संस्करण के बारे में ऐसा नहीं कहा जा सकता है।

भंडारण इंजन

MySQL के तहत स्टोरेज इंजन न केवल शक्तिशाली हैं, बल्कि आउट-ऑफ-द-बॉक्स भी हैं। दुर्भाग्य से, MySQL के बारे में ऐसा नहीं कहा जा सकता है। ऐसे शक्तिशाली इंजनों के उदाहरणों में Aria और XtraDB शामिल हैं। MySQL इन स्टोरेज इंजनों में से कुछ को समायोजित करने के लिए पर्याप्त एक्स्टेंसिबल है, लेकिन डेटाबेस उपयोगकर्ता को मैन्युअल इंस्टॉलेशन के माध्यम से उन्हें लागू करने की तकनीकीता की आवश्यकता होगी। यह आवश्यकता इसे नए डेटाबेस उपयोगकर्ताओं के लिए अमित्र बनाती है।

संगतता

मारियाडीबी MySQL द्वारा समर्थित अनुप्रयोगों में मौजूद रहने के लिए सहज प्रगति कर रहा है और इसे बेहतर प्रदर्शन कर रहा है। जैसा कि आपने नोट किया होगा, MySQL का प्रत्येक संस्करण रिलीज़ मारियाडीबी के एक नेमसिस संस्करण के साथ जुड़ा हुआ है, जो इसकी सामान्य संगतता को इंगित करने के तरीके के समान संस्करण संख्या के साथ है। संक्षेप में, मारियाडीबी कह रहा है, "MySQL क्या कर सकता है, मैं बेहतर कर सकता हूं।"

इस दृष्टिकोण का एक अन्य लाभ यह है कि MySQL से MariaDB में स्विच करना सहज हो जाता है क्योंकि डेटाबेस उपयोगकर्ता को किसी भी एप्लिकेशन कोडबेस को बदलने की तकनीकी नहीं पड़ती है।

ओपन सोर्स बनाम मालिकाना डेटाबेस

Oracle नाम दुनिया भर के कई उद्यमों और संगठनों द्वारा MySQL को एक विशाल प्रोजेक्ट सॉर्ट बनाता है। हालांकि, इस प्रसिद्धि के अपने फायदे और नुकसान हैं। एक बड़ी खामी बड़े या बड़े संगठनों में फीचर रिलीज है। इसके अलावा, इस प्रक्रिया में बहुत समय लगता है।

दूसरी ओर, मारियाडीबी की ओपन-सोर्स प्रकृति इसे बाहरी योगदान, संवर्द्धन और नई फीचर रिलीज को अपनाने से नहीं रोकती है। नतीजतन, यह कई उपयोगकर्ताओं के लिए एक बड़ा निर्णायक कारक है जो अनिश्चित है कि MySQL या MariaDB के साथ जाना है या नहीं।

MariaDB और MySQL के बीच मुख्य अंतर

  • MariaDB में स्टोरेज इंजनों की संख्या MySQL की तुलना में अधिक है। MariaDB में 12 हैं, जो MySQL के दस्तावेज़ों की तुलना में कहीं अधिक है।
  • व्यावहारिक कनेक्शन पूल के संदर्भ में, मारियाडीबी के पास 200 000 से अधिक समर्थित कनेक्शन हैं। MySQL द्वारा समर्थित कनेक्शन पूल का आंकड़ा छोटा है।
  • इन दो डेटाबेस के प्रदर्शन मेट्रिक्स को समझने के लिए, हमें उनकी प्रतिकृति गति को देखना होगा। मारियाडीबी MySQL की तुलना में बहुत तेजी से प्रतिकृति करता है।
  •  आरडीबीएमएस समुदाय के लिए MySQL समुदाय संस्करण की खुली उपलब्धता कुछ मालिकाना कोड की उपस्थिति के कारण इसे पूरी तरह से खुला स्रोत नहीं बनाती है जो इस डेटाबेस एप्लिकेशन के एंटरप्राइज़ संस्करण को परिभाषित करता है। दूसरी ओर, मारियाडीबी पूरी तरह से खुला स्रोत है।
  • डायनेमिक कॉलम और डेटा मास्किंग के लिए MySQL का समर्थन MariaDB पर एक लाभ है।
  • प्रदर्शन गति के संदर्भ में, हम सामान्य कर सकते हैं कि मारियाडीबी गति के मामले में MySQL को पछाड़ देता है।

MariaDB और MySQL के बीच प्रमुख अंतर 

  • इन दो डेटाबेस प्रबंधन सिस्टम सॉफ़्टवेयर के लिए सर्वर ऑपरेटिंग सिस्टम समर्थन के संदर्भ में, OS X एकमात्र ऐसा है जो MariaDB की सूची में अनुपस्थित है लेकिन MySQL पर मौजूद है।
  • MySQL में MariaDB की नई सुविधाएँ और एक्सटेंशन जैसे KILL, WITH, और JSON स्टेटमेंट गायब हैं।
  • MySQL के एंटरप्राइज़ संस्करण में बताई गई हर सुविधा के लिए, MariaDB वैकल्पिक ओपन-सोर्स प्लग इन में आराम ढूंढती है।
  • MariaDB एक क्लोज्ड सोर्स प्रायोरिटी कोड के माध्यम से अपनी मालिकाना सामग्री की सुरक्षा करता है। MySQL का एंटरप्राइज़ संस्करण अपनी सामग्री की सुरक्षा के लिए कुछ मालिकाना कोड का भी उपयोग करता है।
  • मारियाडीबी डेटा मास्किंग का समर्थन नहीं करता है। यह समर्थन MySQL में स्पष्ट है।
  • MySQL डायनेमिक कॉलम का समर्थन करता है, जबकि मारियाडीबी नहीं करता है।
  • MariaDB SQLyog के माध्यम से डेटाबेस मॉनिटरिंग करता है जबकि MySQL उसी उद्देश्य को MySQL वर्कबेंच के माध्यम से प्राप्त करता है।
  • MariaDB, MariaDB MaxScale के माध्यम से रूटिंग को संभालती है। MySQL MySQL राउटर के माध्यम से भी ऐसा ही करता है।
  • MariaDB ColumnStore, MariaDB के विश्लेषण को संभालती है। यह सुविधा MySQL में अनुपस्थित है।
  • माध्यमिक डेटाबेस मॉडल को मारियाडीबी में दस्तावेज़ स्टोर और ग्राफ़ डीबीएमएस द्वारा जिम्मेदार ठहराया गया है। MySQL केवल दस्तावेज़ स्टोर को विशेषता देता है।
  • MariaDB में बढ़ते हुए 2.8 K Github सितारे हैं जबकि MySQL 4 K Github सितारों के साथ आगे है।
  • MariaDB का हाल ही में रिकॉर्ड किया गया कांटा 868 था, जबकि MySQL 1.6 K कांटे के साथ आगे बढ़ता है।

MySQL बनाम MariaDB गुण और दोष 

यदि आपको MySQL और MariaDB के बीच चयन करने के बारे में और स्पष्टीकरण की आवश्यकता है, तो निम्नलिखित शीर्षक वाले संक्षिप्त बिंदुओं पर एक नज़र डालें।

MySQL का उपयोग क्यों करें?

दो कारक बिंदु एक रिलेशनल डेटाबेस प्रबंधन प्रणाली के रूप में MySQL की उपयोगिता को सटीक रूप से उजागर और सारांशित करते हैं।

  • मल्टीपल स्टोरेज इंजन के लिए इसका समर्थन निरंतर है, SQL सर्वर जैसे सिंगल स्टोरेज इंजन सपोर्ट वाले सिस्टम के विपरीत।
  • उपरोक्त कई स्टोरेज इंजन सपोर्ट MySQL को एक उच्च प्रदर्शन वाला रिलेशनल डेटाबेस मैनेजमेंट सिस्टम बनाता है। हालांकि, इसके निर्दोष प्रदर्शन में एक प्रमुख योगदानकर्ता आरडीबीएमएस की डिजाइन सादगी है।

मारियाडीबी का उपयोग क्यों करें?

  • यह बीएसडी, जीपीएल और एलजीपीएल लाइसेंस के तहत काम करता है।
  • एक मानक क्वेरी भाषा के रूप में SQL के लिए इसका समर्थन मान्य है।
  • यह कई और उच्च प्रदर्शन वाले स्टोरेज इंजन के साथ पैक किया गया है। ये स्टोरेज इंजन स्केलेबल हैं और वैकल्पिक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के साथ अच्छी तरह से एकीकृत हैं।
  • गैलेरा क्लस्टर प्रौद्योगिकी की प्रगति के साथ आता है।
  • वेब डेवलपर्स के लिए, मारियाडीबी PHP प्रोग्रामिंग भाषा की लोकप्रियता के साथ अच्छी तरह से समन्वयित है।

MySQL की कमियां

  • इस RDBMS को स्केल करना कोई आसान काम नहीं है।
  • इसके मालिक, Oracle के प्रतिबंधों के कारण यह MySQL समुदाय के लिए पूरी तरह से विस्तार योग्य नहीं है।
  •  इसकी डिज़ाइन और प्रदर्शन मीट्रिक बड़े आकार के डेटा को संभालने के लिए उपयुक्त नहीं हैं।
  • यह क्लाइंट के एप्लिकेशन से धुंधला होता है इसलिए दिखाई नहीं देता है।
  • डेटाबेस सर्वर आसानी से ट्रिगर्स से उच्च भार अधिरोपण का शिकार हो सकता है।

मारियाडीबी की कमियां

  • चूंकि मारियाडीबी अभी भी डेटाबेस समुदाय में एक नया चेहरा है, कई उपयोगकर्ता अभी भी इसके पूर्ण कार्यान्वयन और उपयोग के बारे में संशय में हैं।
  • मारियाडीबी की मुक्त डेटाबेस इंजनों के एक मेजबान होने की स्वतंत्रता का तात्पर्य है कि उपयोगकर्ता समर्थन को एक कीमत पर आना होगा।

अंतिम नोट  

MariaDB से जुड़ी प्रसिद्ध कंपनियों में Grooveshark, Accenture, Docplanner और Nrise शामिल हैं। MySQL के लिए, हमारे पास ड्रॉपबॉक्स, उबेर टेक्नोलॉजीज, नेटफ्लिक्स और एयरबीएनबी हैं। इन दो संबंधपरक डेटाबेस प्रबंधन प्रणालियों के बीच का इतिहास उन्हें अपने उपयोगकर्ता समुदायों के लिए स्वयं के सर्वश्रेष्ठ संस्करण तैयार करने के लिए प्रेरित करता है।

इसमें कोई संदेह नहीं है कि मारियाडीबी के प्रदर्शन कौशल और महाकाव्य विशेषताएं इसे आरडीबीएमएस समुदाय में अपनी पहचान बनाने के लिए मजबूर करती हैं। साथ ही, इसकी कुछ उपयोगी विशेषताएं MySQL में व्यवहार्य हैं। अंत में, मारियाडीबी की सुविधा संपन्न प्रकृति इसे एक उत्कृष्ट प्राथमिक बैकएंड डेटाबेस बनाती है।

यदि आप पहले से ही ऑरैकल लाइसेंस का उपयोग कर रहे हैं, तो आप अभी भी MySQL के अंतर्गत सुरक्षित हैं। हालांकि, उन उपयोगकर्ताओं और उद्यमों के लिए मारियाडीबी की सिफारिश की जाती है जो संबंधपरक डेटाबेस प्रबंधन प्रणालियों के क्षितिज का पता लगाने के लिए शुरुआत कर रहे हैं। आपके पास बिना किसी मूल्य टैग के एक्सप्लोर करने के लिए और विकल्प होंगे। यदि आप MySQL को पूरी तरह से समझते हैं, तो मारियाडीबी पर स्विच करने से उन विभिन्न कारकों को आसानी से सुलझाया जा सकेगा जिन पर आपको दृढ़ता से विचार करने की आवश्यकता हो सकती है। अपने आदर्श संबंधपरक डेटाबेस प्रबंधन प्रणाली को चुनने में शुभकामनाएँ।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP के साथ MySQL के लिए उपयोग करने के लिए सबसे अच्छा संयोजन क्या है?

  2. MySQL में एक नया उपयोगकर्ता और अनुदान अनुमतियाँ कैसे बनाएँ?

  3. MySQL INSERT INTO टेबल VALUES .. बनाम INSERT INTO टेबल SET

  4. अपाचे स्पार्क 2.0.0 में, क्या बाहरी डेटाबेस से एक क्वेरी प्राप्त करना संभव है (बजाय पूरी तालिका को हथियाने के)?

  5. MySQL में एस्ट्रोफ़े (') से कैसे बचें?