مقایسه MariaDB و MySQL:هر آنچه که نیاز دارید بدانید.

مقایسه MariaDB و MySQL:هر آنچه که نیاز دارید بدانید.

MySQL یکی از پایگاه داده های پرکاربرد در سراسر جهان است. این پایگاه داده رایگان و Open source نیز هست. MySQL که در++C / C  توسعه یافته است یکی از محبوب ترین گزینه های پایگاه داده است.

این پایگاه داده توسط یک شرکت سوئدی "MySQL AB" در سال 1995 راه اندازی شد. MySQL AB بعداً توسط Sun Microsystems در سال 2008 خریداری شد. بعداً ، Sun Microsystems نیز توسط اوراکل در سال 2010 خریداری شد. از آن زمان ، MySQL توسط اوراکل نگهداری و مدیریت می شود.

در حین خریداری Sun Microsystems توسط اوراکل ، برخی از مهندسین ارشد که مشغول توسعه MySQL بودند ، احساس کردند بین منافع MySQL و بانک اطلاعات تجاری اوراکل تضاد وجود دارد. در نتیجه ، این مهندسین یک شاخه ای از کد MySQL ایجاد کردند و شرکت خودشان را تاسیس کردند. به این ترتیب MariaDB متولد شد.

تا به امروز ، هر دو پایگاه داده بسیار محبوب بوده اند و مورد استفاده گسترده جامعه توسعه دهندگان قرار می گیرند. MySQL در بین پایگاه داده های رابطه ای در رتبه 2 و به طور کلی نیز در رتبه ی 2 است (شماره 1 پایگاه داده اوراکل است). در مقابل ، MariaDB کمی عقب است و در میان پایگاه داده های رابطه رتبه 9 و در کل رتبه 14 است.

MariaDB در مقایسه با MySQL

در این پست سعی خواهیم کرد برخی از ویژگیهای هر دو این پایگاه داده را با هم مقایسه کنیم تا ببینیم کدامیک از بهترین ها برای استفاده در سال 2019 است.

MariaDB در مقایسه با عملکرد MySQL

MariaDB دارای چندین بهینه سازی است که در مقایسه با MySQL باعث بهبود عملکرد می شوند. در حقیقت ، هنگامی که MariaDB توسط مایکل ویدنیوس ، بنیانگذار اصلی MySQL و همچنین MariaDB آغاز شد ، دقیقاً این دیدگاه را در ذهن داشت.

Viewهای پایگاه داده

به عنوان نمونه ، یک بهینه سازی عملکردی بزرگ با توجه به "View" پایگاه داده وجود دارد. "View ها" در واقع جداول بانک اطلاعاتی مجازی هستند که می توانند مانند جداول معمولی بانک اطلاعاتی مورد سؤال قرار گیرند. در MySQL ، هنگامی که روی یک view کوئری می زنید ، صرف نظر از این که ممکن است کوئری نیازی به برخی از view ها نداشته باشد ، کوئری روی تمام جداول مرتبط با View نمایش زده می شود. این مورد در MariaDB بهینه شده است و کوئری فقط روی جداولی که مورد نیاز است زده می شود.

ColumnStore

به عنوان نمونه دیگر ، MariaDB بهبود عملکرد قدرتمند دیگری را در قالب "ColumnStore" ارائه می دهد که یک معماری داده توزیع شده است که اجازه می دهد تا MariaDB را بسیار مقیاس کند. این ویژگی می تواند به صورت خطی برای ذخیره داده های بسیار زیاد در سرورهای مختلف در یک خوشه پایگاه داده استفاده شود.

عملکرد بهتر در حافظه Flash

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

Segmented Key Cache

MariaDB بهبود عملکرد دیگری را در قالب Segmented Key Cache ارائه می دهد. در یک حافظه پنهان معمولی ، ترد های مختلفی برای قفل کردن ورودی کش با یکدیگر رقابت می کنند. به این قفل ها mutexes گفته می شود. هنگامی که چندین قفل برای یک mutex در حال رقابت هستند ، فقط یکی از آنها قادر به گرفتن آن است در حالی که دیگران باید قبل از انجام عمل صبر کنند تا قفل آزاد شود همین منجر به تاخیر در اجرای این ترد ها روی بانک اطلاعاتی می شود. در Segmented Key Cache ، ترد لازم نیست که کل page را قفل کند ، اما می تواند فقط بخش خاصی را که به آن page تعلق دارد قفل کند. این به چندین ترد کمک می کند تا به طور موازی کار کنند و از این طریق موازی بودن در برنامه افزایش می یابد و منجر به عملکرد بهتر پایگاه داده می شود.

ستون های مجازی

ویژگی جالبی که MariaDB از آن پشتیبانی می کند ستون های مجازی است. این ستون ها قادر به انجام محاسبات در سطح بانک اطلاعاتی هستند. این ویژگی بسیار مفید است وقتی بسیاری از برنامه ها به همان ستون دسترسی پیدا می کنند ، بنابراین نیازی به نوشتن محاسبه در هر برنامه نیست - پایگاه داده می تواند این کار را برای شما انجام دهد. این ویژگی در MySQL در دسترس نیست.

اجرای موازی کوئری ها

یکی از نسخه های اخیر MariaDB - 10.0 امکان اجرای موازی چندین کوئری را دارد. ایده این است که تعدادی از کوئری های Master می توانند در Slave همانند سازی شوند و بنابراین می توانند به صورت موازی اجرا شوند. این موازی بودن در اجرای کوئری ها ، مطمئناً برتری MariaDB را در مقابل MySQL نشان می دهد.

Thread pooling

MariaDB همچنین مفهوم جدیدی با عنوان "thread pooling" را معرفی می کند. پیش از این ، وقتی چندین اتصال به یک پایگاه داده لازم بود ، برای هر اتصال ، یک رشته باز می شد که منجر به معماری مبتنی بر "یک رشته در هر اتصال" می شود. با استفاده از "Thread Pooling" ، مجموعه ای از ترد های باز وجود دارد که اتصال جدید به پایگاه داده می تواند از بین آن ها انتخاب کند و کوئری بزند. به این ترتیب ، برای هر درخواست اتصال جدید که منجر به نتایج سریعتر پرس و جو شود ، نباید ترد جدیدی باز شود. این ویژگی در نسخه Enterprise از MySQL موجود است اما متأسفانه در نسخه Community در دسترس نیست.

موتورهای ذخیره سازی

MariaDB چندین موتور ذخیره سازی قدرتمند را ارائه می دهد که در MySQL در دسترس نیستند. به عنوان مثال ، XtraDB ، Aria ، و غیره برای راه اندازی این موتورهای ذخیره سازی برای MySQL ، باید آنها را به صورت دستی نصب کنید که شاید مناسب نباشد.

سازگاری

تیم MariaDB اطمینان می دهد که MariaDB می تواند یکپارچه MySQL را در برنامه های موجود جایگزین کند. در حقیقت ، برای هر نسخه از MySQL ، آنها نسخه مشابه MariaDB را منتشر می کنند تا نشان دهند که MariaDB به طور کلی با نسخه MySQL مربوطه سازگار است. این امکان تغییر یکپارچه به MariaDB و بدون تغییر در کد اپلیکیشن را فراهم می کند.

Open source در مقابل بانک اطلاعات اختصاصی

MySQL یک پروژه بزرگ است و توسط یکی از بزرگترین سازمان های جهان ، Oracle ، اداره می شود. این جوانب مثبت و منفی خود را دارد. یکی از بزرگترین نتایج این حالت این است که انتشار ویژگی های جدید در چنین سازمان هایی زمان زیادی را می برد. از طرف دیگر ، MariaDB کاملاً open source است و خیلی سریع در پذیرش کمک های خارجی و انتشار ویژگی ها و پیشرفت های جدید بسیار سریع عمل می کنند. این نکته دیگری است که باید هنگام تصمیم گیری بین MySQL و MariaDB در نظر داشته باشید.

نتیجه

بدون شک MariaDB کاملاً قدرتمند است و ویژگی های بسیاری را ارائه می دهد که بسیار مفید هستند و در MySQL پشتیبانی نمی شوند. چنین ویژگی هایی در واقع MariaDB را به عنوان یک بانک اطلاعاتی backend به گزینه ای پر سود تبدیل می کند. به طور کلی ، سازمان هایی که قبلاً مجوزهای اوراکل را خریداری کرده اند ، نیازی به سرمایه گذاری در MariaDB ندارند. با این حال ، افرادی که تازه کار را شروع می کنند و می خواهند تصمیم بگیرند از کدام پایگاه داده استفاده کنند ، بدون شک MariaDB انتخاب بهتری است.

مقالات مرتبط

MySQL چیست؟

نظر شما

0 نظر

نظری ثبت نشده است