یکی از گامهای ابتدایی و مهم در تولید نرمافزار، انتخاب ابزار مناسب برای ذخیرهسازی اطلاعات است. تعیین فرمولی دقیق برای انتخاب ابزار متناسب کاری بسیار مشکل است. علاوه بر آن به دلیل گسترده بودن دامنهی نیازها و تنوع زیاد در گزینههای موجود، گاهی انتخاب حتی برای بهترین برنامهنویسان هم کاری نه چندان آسان به نظر میرسد.
در این نوشته تلاش میکنم بخشی از تفاوتهای قابل توجه میان Microsoft SQL Server و MySQL Server -به عنوان دو گزینهی متداول در نگهداری اطلاعات- را فهرست کنم.
شباهتها
SQL Server و MySQL نرمافزارهایی با قدمت بالا و امکانات فراوان هستند. هر یک از این ابزارها ویژگیهای مشترک بسیاری دارند که در بسیاری از کاربردهای معمول، برتری چندانی در بهکارگیری بر یکدیگر ندارند.
مجوز استفاده
MySQL دارای نسخهای رایگان و بدون محدودیت برای استفادههای متنباز و غیرتجاری است. استفاده از این نگارش در حجم دادههای بالا بدون پرداخت هزینه امکانپذیر است. در طرف دیگر، اگرچه SQL Server هم نگارش رایگانی را در اختیار برنامهنویسان قرار میدهد، ولی برخی محدودیتها و تفاوتها با نگارش حرفهای در آن وجود دارد.
محیط برنامهنویسی
سهولت استفاده در بهکارگیری یکی ابزار میتواند سرعت و کیفیت فرآیند توسعه را بهبود دهد و سبب کاهش هزینهها و افزایش توسعهپذیری نرمافزار بشود. پیوند دیرینه میان PHP و MySQL و در طرف دیگر پیوند محکم میان Visual Studio و SQL Server عامل مهمی در انتخاب ابزار مناسب به شمار میروند.
سیستمعامل
SQL Server به طور خاص روی سیستمعامل ویندوز قابل استفاده است. در عوض MySQL در چندین سیستمعامل گوناگون نصب میشود و امکان انتقال دادهها میان این نگارشها به آسانی فراهم است. چنانچه قابل حمل بودن نرمافزار از پیشنیازهای آن به حساب بیاید، SQL Server از گزینههای قابل انتخاب خارج خواهد شد.
منابع سختافزاری و نرمافزاری
MySQL به منابع سختافزاری و نرمافزاری محدودی نیاز دارد و در مقایسه با SQL Server هزینهی کمتری را طلب میکند. نباید فراموش کرد که منابع سختافزاری ناکافی میتواند در عملکرد نرمافزار تاثیر منفی بگذارد و علاوه بر افزایش استهلاک، سبب کاهش پایداری اطلاعات بشود.
دسترسی و امنیت دادهها
SQL Server از شیوههای مختلفی برای شناسایی کاربران استفاده میکند. تایید هویت بر اساس کاربران سیستمعامل ویندوز و اتصال به Active Directory از ویژگیهای مختص SQL Server به شمار میروند. در طرف مقابل، MySQL تنها با کمک نام کاربری و گذرواژه میتواند دسترسی کاربران را محدود کند.
همچنین کدگذاری و حفاظت از اطلاعات در SQL Server در مقایسه با MySQL پیشرفتهتر طراحی و پیادهسازی شده است.
هزینهی نگهداری
هزینهی نگهداری شامل هزینههای پرسنل متخصص، سختافزارهای تهیهی پشتیبان، مجوزهای استفاده و هزینههای احتمالی دیگر بسته به محیط و شرایط میتواند متغیر باشد. بررسی و محاسبهی دقیق این هزینهها از معیارهای قابل ملاحظه پیش از تصمیمگیری نهایی به حساب میآیند.
تعداد کاربران و حجم دادهها
امکان مدیریت کاربران در تعداد بالا و در دسترس بودن پایگاه داده در SQL Server شرایط بهتری دارد. همچنین در حجمهای بسیار زیاد، استفاده از SQL Server در مقایسه با MySQL بیشتر توصیه میشود.
ویژگیهای خاص
علاوه بر استانداردهای تعریفشده هر DBMS ویژگیهای غیراستاندارد مختص به خود را هم دارد. چنانچه قابلیت حمل پایگاه داده از نیازهای سیستم به شمار نیاید، برخی از این ویژگیهای غیراستاندارد میتوانند به تنهایی عاملی برای انتخاب یک ابزار و حذف ابزارهای دیگر به شمار آیند. برای مثال پایگاه دادهی Oracle این قابلیت را دارد که اطلاعات شما را به هر زمان دلخواه در گذشته برگرداند. و یا MySQL با پشتیبانی از سیستم ذخیرهسازی MyISAM توانایی دسترسی سریع و فقط خواندنی به اطلاعات را به خوبی در خود جای داده.
همان طور که گفته شد، تعیین معیاری دقیق برای انتخاب صحیح کاری دشوار است. علاوه بر آنچه در بالا فهرست شد، قطعا موارد دیگری نیز وجود دارند که میتوانند تصمیم نهایی را در مسیری متفاوت هدایت کنند.
MySQL هم خوبه (البته مجوز استفادهاش رو هم باید مدنظر داشته باشید).
http://www.dotnettips.info/post/488
هرچند از زمانیکه به تملک اوراکل درآمده، خیلی از شرکتها دارند به سمت MariaDB کوچ میکنند:
http://www.zdnet.com/red-hat-will-switch-from-oracle-mysql-to-mariadb-reports-7000017907/
http://www.i-programmer.info/news/84-database/6386-google-drops-mysql-for-mariadb.html