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

सी # - MySQL बनाम माइक्रोसॉफ्ट एसक्यूएल सर्वर

मैंने बड़ी और छोटी सी # परियोजनाओं पर कई वर्षों तक SQL सर्वर का उपयोग किया है, लेकिन पिछले वर्ष के लिए विभिन्न सी # (लेकिन ओपन-सोर्स-संबंधित और स्टार्टअप-संबंधित) परियोजनाओं पर ज्यादातर MySQL का उपयोग कर रहा हूं जो पहले से ही MySQL का उपयोग कर रहे थे।

मुझे SQL सर्वर याद आती है! मेरे अनुभव में, SQL सर्वर कई मायनों में बेहतर है:

  • SQL सर्वर में क्वेरी ऑप्टिमाइज़र अधिक स्मार्ट है, जिसका अर्थ है कि आप अक्सर क्वेरीज़ बना सकते हैं और वे इष्टतम क्वेरी प्लान तैयार करेंगे। MySQL के साथ, मैं अच्छी क्वेरी योजना तैयार करने के लिए अपेक्षाकृत सरल प्रश्नों को भी हाथ से ट्यून करने में अधिक समय व्यतीत करता हूं।
  • SQL सर्वर में अंतर्निहित डेटाबेस इंजन प्रदर्शन को बढ़ावा देने के लिए कई तरह के काम कर सकता है। उदाहरण के लिए, MySQL में सभी जॉइन नेस्टेड लूप जॉइन हैं, जबकि SQL सर्वर हैश जॉइन या मर्ज जॉइन कर सकता है जो कभी-कभी क्वेरी प्रदर्शन को 10x+ बढ़ा सकता है। SQL सर्वर क्वेरी को समानांतर भी कर सकता है, जो विशेष रूप से बड़े डेटा-वेयरहाउस वर्कलोड के लिए, नाटकीय रूप से प्रदर्शन को बढ़ा सकता है।
  • जीयूआई उपकरण मीलों आगे हैं। SQL सर्वर का ग्राफिकल प्लान क्वेरी ऑप्टिमाइज़र क्वेरी ऑप्टिमाइज़ेशन को एक स्नैप बनाता है-- आप कभी भी EXPLAIN EXTENDED पर वापस नहीं जाना चाहेंगे। SQL सर्वर 2008 के ग्राफिकल मॉनिटरिंग टूल धीमे क्वेरी लॉग के माध्यम से खुदाई करने से कहीं अधिक आसान हैं कि क्या गलत हो रहा है। और इसी तरह।
  • जैसा कि आपने बताया, SQL सर्वर में .NET एकीकरण कहानी (C#, Linq, Entity Framework, आदि) बेहतर है। मैं MySQL के साथ C#, Entity Framework, और LINQ का भी उपयोग करता हूं, इसलिए यह कोई एक या चीज नहीं है, हालांकि .NET वातावरण में SQL सर्वर के साथ प्रदर्शन बेहतर होने की संभावना है क्योंकि टीम प्रदर्शन को बढ़ावा देने और एकीकरण कार्य को बेहतर बनाने के लिए मिलकर काम करती है। ।
  • SQL सर्वर का SQL-भाषा समर्थन MySQL की तुलना में अधिक समृद्ध है, जिसमें कुछ बहुत ही शानदार विशेषताएं शामिल हैं (विशेषकर SQL 2008 में) जैसे ROW_NUMBER() , GROUPING_SETS , OPTIMIZE FOR , गणना किए गए कॉलम , आदि.
  • बैकअप कई गुना तेज है, खासकर SQL 2008 में कंप्रेस्ड बैकअप के साथ
  • SQL सर्वर के भविष्य पर कोई Oracle अधिग्रहण क्लाउड नहीं लटक रहा है।
  • एसक्यूएल सर्वर (विशेष रूप से महंगे संस्करण) अन्य अच्छाइयों के साथ आते हैं, जैसे ओएलएपी डेटा वेयरहाउस (एसएसएएस), एक रिपोर्टिंग समाधान (एसएसआरएस), एक ईटीएल उपकरण (एसएसआईएस), एक शेड्यूलर (एसक्यूएल एजेंट), आदि। आप कर सकते हैं समान ओपन-सोर्स टूल मुफ्त में प्राप्त करें (उदा. Pentaho , BIRT , आदि) लेकिन एकीकरण SQL सर्वर के साथ बेहतर होता है।

उस ने कहा, महत्वपूर्ण कमियां हैं, जो आपके लिए डील-ब्रेकर हो भी सकती हैं और नहीं भी:

  • आप विंडोज सर्वर का उपयोग करने में फंस गए हैं, इसके सभी फायदे और नुकसान हैं
  • एसक्यूएल सर्वर, विशेष रूप से उच्चतर संस्करण, महंगे हैं ! छोटे डीबी (<4GB मुझे लगता है) के लिए, SQL सर्वर एक्सप्रेस मुफ़्त है, और लगभग नियमित SQL सर्वर के रूप में पूर्ण विशेषताओं वाला है-- यदि आप जानते हैं कि आपका डेटा छोटा होने वाला है और आप जानते हैं कि आपका बॉस एक चीपस्केट है , एक्सप्रेस जाने का रास्ता है। साथ ही, एक नया SQL Server 2008 वेब संस्करण है, जो इंटरनेट से जुड़े वेब ऐप्स के लिए सैद्धांतिक रूप से सस्ते होस्टिंग की पेशकश करनी चाहिए क्योंकि एक होस्टर की लागत केवल $15/माह प्रति प्रोसेसर है।
  • यह खुला स्रोत नहीं है। कुछ कंपनियां और विकास दल अच्छे कारणों (डीबगिंग, लागत, दर्शन, आदि) के लिए इसके बारे में बहुत भावुक हैं!
  • उपरोक्त से संबंधित:यदि आप MySQL में बग को ठीक करना चाहते हैं, और आपके पास कौशल है, तो आप इसे स्वयं ठीक कर सकते हैं। SQL सर्वर के साथ, क्वेरी प्रोसेसिंग, ऑप्टिमाइज़ेशन आदि में दर्दनाक बग हैं जो वर्षों तक बने रहते हैं-- मैंने उनमें से कुछ के आसपास काम करने में एक बेतुका समय बिताया है।
  • बहुत ही सरल, रीड-ओनली (या गैर-लेनदेन) वर्कलोड (उदाहरण के लिए वेब ऐप से डीबी-आधारित कैश एक्सेस) के लिए जहां आप इनो डीबी के बजाय माईसाम का उपयोग कर दूर हो सकते हैं, मैंने सुना है कि MySQL काफी तेज हो सकता है ।

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

पुन::आपका "सी # अंतर्निहित है" नोट:हां, आप .NET भाषाओं का उपयोग करके संग्रहीत प्रक्रियाओं, कार्यों, समुच्चय इत्यादि को विकसित कर सकते हैं, लेकिन अधिकांश परिदृश्यों में आईएमएचओ इसके लायक होने की तुलना में अधिक परेशानी है, जिसमें तैनाती कठिन है और डीबीए अपने सर्वर पर .NET कोड के साथ कम सहज हैं। C# + .NET + Visual Studio + SQL सर्वर संयोजन, IMHO के लिए वास्तविक जीत यह है कि उन्हें पिछले 10 वर्षों में समानांतर रूप से डिज़ाइन किया गया है ताकि सभी एक साथ अच्छी तरह से काम कर सकें, इसलिए आपको उपयोग में आसानी और तालमेल मिलेगा कि आप MySQL का उपयोग नहीं कर सकते हैं। उस ने कहा, जैसा कि मैंने ऊपर उल्लेख किया है, यह एक डील-ब्रेकर या डील-मेकर नहीं है ... यह बाकी Microsoft स्टैक के साथ SQL सर्वर का उपयोग करना आसान है।

संक्षेप में, मैं स्पष्ट कर दूं कि, कई डीबी वर्कलोड के लिए, 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 में पीडीओ के लिए अपवादों को स्वचालित रूप से पकड़ें

  2. MySQL वर्कबेंच का उपयोग करके एक नया डेटाबेस आरेख कैसे बनाएं

  3. SQL एक कॉलम के मान को उसी तालिका में दूसरे कॉलम के मानों के बराबर सेट करता है

  4. MySQL में इंडेक्स के आकार का पता कैसे लगाएं

  5. MySQL में डेटाटाइम से घंटे कैसे घटाएं?