تفاوت های میان MySQL و MariaDB


تفاوت های میان MySQL و MariaDB

در ابتدا نیاز است تعریفی مختصر از هر دو Database Server را داشته باشیم .

MySQL : یکی از مشهورترین سیستم‌ های مدیریت database است که قابلیت اجرا شدن در بیش از ۲۰ نوع platform مختلف شامل windows و Linux و بسیاری دیگر را دارد. در ابتدا شرکتی سوئدی به نام MySQL AB ، MySQL را در سال ۱۹۹۴ توسعه داد. در سال ۲۰۰۸ شرکت آمریکایی Sun Microsystem با خرید آن از MySQL AB مالکیت کامل آن را بدست آورد. برخی از سازمان هایی که از MySQL استفاده می کنند شامل : GitHub، NASA ، Netflix ، Facebook ، WeChat ، Tesla ، YouTube ، Spotify ، Twitter و …. هستند.

[/vc_column_text]

Maria DB

Maria DB : یک نوع database server است که در سال‌ های اخیر در سطح جهانی خیلی خودش را مطرح کرده است. در سال ۲۰۰۹ طراحان و توسعه دهندگان MySQL یک database جدید را بر مبنای MySQL ایجاد کردند و نام آن را Maria DB  نامگذاری کردند . Maria DB توسط بسیاری از شرکت های بزرگ ، توزیع های لینوکس و موارد دیگر مورد استفاده قرار می گیرد. برخی از سازمان هایی که از Maria DB استفاده می کنند شامل : Google ، Wikipedia ، CentOS ، RedHat ، fedora و …. هستند.

از بزرگترین دغدغه های سایت های امروزی بحث میزان مصرف و سرعت سرویس database سایت می باشد. وب سایت های امروزی معمولا database سنگینی دارند و استفاده از افزونه های مختلف نیز به دلیل ایجاد query های زیاد در سرویس بانک اطلاعاتی باعث سنگین شدن database می شود. ولی اگر یک engine database قوی داشته باشند، مطمئنا بیشتری خواهند داشت و از منابع کمتری استفاده می کنند. در سرویس های هاست اشتراکی معمولا بیشترین مصرف مربوط به MySQL می باشد که میزان زیادی از رم و پردازنده سرور مصرف میکند و اکثر مدیران و متخصصان هاستینگ و سرور با این مسئله درگیر هستند . راه های مختلفی جهت بهینه سازی سرویس database وجود دارد که یک سری از راه ها مربوط به کد نویسی می باشد که با بهینه سازی و سبک سازی query های ارسالی به سرویس MySQL می توان تا حد زیادی سرعت را بهبود بخشید و یک بخش دیگر هم مربوط به کانفیگ   MySQL می باشد که از سمت سرور و روی سرویس مذکور باید توسط یک متخصص انجام شود. امروزه با پیشرفت تکنولوژی و دانش دیجیتال engine های جدیدی به جز MySQL نیز منتشر شده است که یکی از آن ها Maria DB نام دارد. Maria DB دارای چندین بهینه سازی است که باعث بهبود عملکرد در مقایسه با MySQL شده است.

بهینه سازی در database view اولین موردی می باشد که می توان به آن اشاره کرد. View در واقع جداول database مجازی هستند که می توانند مانند جداول معمولی بانک اطلاعاتی، مورد پرسش قرار گیرند. وجود view ها باعث بهبود عملکرد سرور شود . هنگام اجرا view در MySQL صرف نظر از این واقعیت که ممکن است پرس و جو نیازی به برخی از view ها داشته باشد یا نه، تمام جداول مرتبط با view را نمایش می دهد اما این مورد در Maria DB بهبود داده شده است و تنها جدول هایی  نمایش داده می شوند که توسط پرس و جو مورد نیاز است.

Maria DB عملکرد دیگری تحت عنوان column store معرفی می کند که یک معماری توزیع داده شده است که کارایی query های قابل اجرا روی database ‌های با حجم داده ای بسیار بالا را بهبود بخشیده است. برخلاف ذخیره سازی Row Store، در ذخیره سازی column store داده‌ ها به صورت ستونی ذخیره می‌ شوند، در این روش داده ها، فشرده سازی شده و این کار باعث می‌ شود در زمان درخواست یک query، نیاز به  Disk I/O به حداقل برسد. در نتیجه، زمان و سرعت پاسخگویی به پرس و جو‌ ها بسیار افزایش می ‌یابد.

Maria DB همچنین موتور ذخیره MyRocks را در اختیار کاربر قرار می دهد که پایگاه داده RocksDB را به آن اضافه می کند. RocksDB یک پایگاه داده است که با ارائه سطح بالاتری از فشرده سازی داده ها برای عملکرد بهتر در ذخیره سازی فلش طراحی شده است.

Maria DB پیشرفت دیگری را در عملکرد خود، تحت عنوان Segmented Key Cache ارائه داده است. به عنوان مثال در MySQL چنانچه یک thread اجرا شود مابقی thread ها قفل می شوند تا طی آن query به انجام برسد. سپس یک thread دیگر اجرا شود و بدین شکل تاخیر در اجرای این threads منجر به کند عمل کردن بانک اطلاعاتی می شود. بنابراین در Segmented Key Cache نیازی به قفل کردن thread ها نیست و می توانند بطور موازی اجرا شوند که این مورد باعث می شود عملکرد بانک اطلاعاتی بهبود یابد.

ویژگی جالب دیگری که Maria DB از آن پشتیبانی می کند Virtual Columns یا ستون های مجازی است. این ستون ها قادر به انجام محاسبات در سطح بانک اطلاعاتی هستند. در واقع این ستون های مجازی می توانند مقداری را که از یک یا چند فیلد دیگر برگرفته شده است در همان جدول در یک قسمت جدید ذخیره کنند. این یک روش بسیار خوب برای ایجاد یک شاخص عملکردی است. این ویژگی منجر می شود که بسیاری از برنامه ها به همان ستون دسترسی پیدا کنند و نیازی به نوشتن محاسبه در هر برنامه نباشد. و اما این قابلیت هم در Maria DB و هم در MySQL 5.7 ارائه شده است.

موتور های ذخیره سازی ابزارهایی هستند که کار ذخیره و بازیابی اطلاعات را برای جداول انجام می ‌دهند. پرکاربرد ترین موتور ذخیره سازی innoDB است که استفاده از آن به صورت ویژه تری توصیه می شود.

[/vc_column][/vc_row]

سایر موضوعات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *