
مقایسه MariaDB با MySQL
MySQLچیست؟
MySQLچیست؟MySQL یکی از پرکاربردترین پایگاه های اطلاعاتی در سراسر جهان است. این برنامه رایگان و متن باز نیز هست. MySQL با زبان C / C ++ توسعه یافته است و یکی از محبوب ترین گزینه های پایگاه داده می باشد.
این پایگاه داده توسط یک شرکت سوئدی “MySQL AB” در سال 1995 شروع به کار کرد. MySQL AB بعداً توسط Sun Microsystems در سال 2008 خریداری شد. بعداً ، Sun Microsystems توسط Oracle در سال 2010 خریداری شد. از آن زمان ، MySQL توسط Oracle پشتیبانی و اداره می شود.
در طی خریداری Sun Microsystems توسط Oracle ، برخی از مهندسان ارشد که در زمینه توسعه MySQL کار می کردند احساس کردند که بین MySQL و پایگاه داده تجاری Oracle تضاد منافع وجود دارد – Oracle Database Server. در نتیجه ، این مهندسان یک شاخه از کد MySQL ایجاد کردند و سازمان خود را ایجاد کردند. اینگونه MariaDB متولد شد.
حالا ، هر دو پایگاه داده بسیار محبوب هستند و توسط جامعه توسعه دهنده به طور گسترده ای مورد استفاده قرار می گیرند. MySQL در بین پایگاه های رابطه ای شماره 2 و در کل (2 پایگاه داده اوراکل) رتبه 2 را به خود اختصاص داده است. برعکس ، MariaDB کمی عقب است – شماره 9 در بین پایگاه های اطلاعاتی رابطه ای و در مجموع # 14.
MariaDB در مقابل MySQL
در این پست وبلاگ ، سعی خواهیم کرد برخی از ویژگیهای هر دو پایگاه داده را با هم مقایسه کنیم تا ببینیم کدام یک برای استفاده در سال 2021 بهترین است.
مقایسه عملکرد MariaDB و MySQL
مقایسه عملکرد MariaDB و MySQL:چندین بهینه سازی در MariaDB عملکردش در مقایسه با MySQL بهبود یافته است. در حقیقت ، این دقیقاً همان تصوری بود که مایکل ویدنیوس بنیانگذار اصلی MySQL و همچنین MariaDB در ذهن داشت که باعث آغاز به کار این دیتابیس ها شد.
بازدید از پایگاه داده (Database Views)
به عنوان مثال ، یک بهینه سازی عملکرد عظیم در رابطه با “نماهای” پایگاه داده وجود دارد. “Views” اساساً جداول پایگاه داده مجازی است که می توان مانند جداول معمولی پایگاه داده از آنها پرس و جو کرد. در MySQL ، هنگامی که یک نما را درخواست می کنید ، جداولی که به نما متصل هستند ، پرس و جو می شوند ، صرف نظر از اینکه ممکن است برخی از نمایش ها به درخواست نیاز نداشته باشند. این مورد در MariaDB بهینه سازی شده است ، جایی که فقط آن جداول مورد پرس و جو قرار می گیرند.
ColumnStore
بعنوان مثال دیگر ، MariaDB یک بهبود عملکرد قدرتمند دیگر در قالب “ColumnStore” ارائه می دهد که یک ساختار داده توزیع شده است و اجازه می دهد تا MariaDB مقیاس بندی زیادی داشته باشد.که می تواند به صورت خطی مقیاس ذخیره داده های پتابایت (petabytes) را در سرورهای مختلف در یک خوشه پایگاه داده ذخیره کند.
عملکرد بهتر در ذخیره سازی فلش (Flash Storage)
MariaDB همچنین موتور ذخیره سازی MyRocks را فراهم می کند که پایگاه داده RocksDB را به آن اضافه می کند. RocksDB پایگاه داده ای است که با ارائه سطح بالاتری از فشرده سازی داده ها ، برای عملکرد بهتر در ذخیره سازی فلش طراحی شده است.
حافظه پنهان تقسیم شده (Segmented Key Cache)
MariaDB بهبود عملکرد دیگری را به صورت Segmented Key Cache (حافظه پنهان تقسیم شده) ارائه می دهد. در یک حافظه پنهان معمولی ، رشته های مختلف برای گرفتن قفل از ورودی ذخیره شده با یکدیگر رقابت می کنند. به این قفل ها موتکس (mutexes) گفته می شود. هنگامی که چندین رشته برای یک mutex رقابت می کنند ، فقط یکی از آنها قادر به دریافت آن است در حالی که دیگران قبل از انجام عملیات باید منتظر بمانند تا قفل آزاد شود. این منجر به تاخیر در اجرای این رشته ها می شود که عملکرد پایگاه داده را کند می کند. در مورد حافظه پنهان تقسیم شده (Segmented Key Cache) ،نیازی به قفل کل صفحه نمی باشد ، اما می تواند فقط بخش خاصی را که صفحه به آن تعلق دارد قفل کند. که باعث کمک به چندین رشته می شود تا به طور موازی کار کنند و در نتیجه موازی کاری در برنامه منجر به عملکرد بهتر پایگاه داده می شود.
ستون های مجازی (Virtual Columns)
از ویژگی های جالبی که MariaDB پشتیبانی می کند ستون های مجازی است. این ستون ها قادر به انجام محاسبات در سطح پایگاه داده هستند. این مورد زمانی بسیار مفید است که بسیاری از برنامه ها به یک ستون دسترسی پیدا می کنند و بنابراین ، نیازی به نوشتن محاسبه در هر برنامه نیست – پایگاه داده می تواند این کار را برای شما انجام دهد. این ویژگی در MySQL وجود ندارد.
اجرای موازی کوئری ها (Parallel Execution of Queries)
یکی از نسخه های اخیر MariaDB – 10.0 امکان اجرای موازی چندین درخواست را فراهم کرده. ایده این است که برخی سوالات (queries) از Master می تواند در Slave تکرار شود و بنابراین می تواند به صورت موازی اجرا شود. این موازی کاری در اجرای پرس و جو قطعاً MariaDB را نسبت به MySQL برتری می دهد.
Thread Pooling
MariaDB همچنین مفهوم جدیدی را با عنوان “Thread Pooling” معرفی می کند. پیش از این ، هنگامی که به چندین اتصال به یک پایگاه داده نیاز بود ، برای هر اتصال ، یک رشته باز می شد که منجر به معماری مبتنی بر “یک رشته در هر اتصال (one thread per connection)” میشد. با استفاده از “Thread Pooling” ، مجموعه ای از رشته های باز وجود خواهد داشت که اتصال جدید می تواند پایگاه داده را انتخاب و پرس و جو کند. به این ترتیب ، برای هر درخواست اتصال جدید، که منجر به نتایج سریعتر پرس و جو می شود ، یک رشته جدید باز نمی شود. این ویژگی در نسخه Enterprise MySQL موجود است اما متأسفانه در نسخه Community در دسترس نیست.
موتورهای ذخیره سازی (Storage Engines)
MariaDB چندین موتور ذخیره سازی قدرتمند خارج از جعبه ( storage engines out-of-the-box) را ارائه می دهد که در MySQL موجود نیست. به عنوان مثال XtraDB ، Aria و … برای تنظیم این موتورهای ذخیره سازی برای MySQL ، باید آنها را به صورت دستی نصب کنید که شاید کار راحتی نباشد.
سازگاری
تیم MariaDB این اطمینان را میدهد که MariaDB می تواند یکپارچه جایگزین MySQL در برنامه های موجود شود. در واقع ، برای هر نسخه از MySQL ، آنها همان نسخه MariaDB را منتشر می کنند تا نشان دهند که MariaDB به طور کلی با نسخه مربوط به MySQL سازگار است. که امکان تغییر یکپارچه به MariaDB بدون تغییر در پایگاه برنامه کاربردی را فراهم می کند.
منبع باز در مقابل پایگاه داده اختصاصی
MySQL یک پروژه بزرگ است و توسط یکی از بزرگترین سازمانهای جهان – اوراکل – مدیریت می شود. که موافقان و مخالفان خود را دارد. یکی از بزرگترین معایب این اتفاق این است که انتشار ویژگی های جدید در این سازمانها زمان زیادی را می برد. از سوی دیگر ، MariaDB کاملاً منبع باز است و آنها در پذیرش مشارکت های خارجی و انتشار به عنوان ویژگی ها و پیشرفت های جدید بسیار سریع عمل می کنند. که نکته دیگری است که باید هنگام تصمیم گیری بین MySQL و MariaDB به خاطر بسپارید.
نتیجه
MariaDB بدون شک کاملاً قدرتمند است و ویژگی های بسیاری را فراهم می کند که بسیار مفید هستند و در MySQL پشتیبانی نمی شوند. چنین ویژگی هایی در واقع MariaDB را به گزینه ای سودآور تبدیل می کند تا به عنوان پایگاه داده اصلی backend استفاده شود. به طور کلی ، سازمانهایی که قبلاً مجوزهای Oracle را خریداری کرده اند نیازی به سرمایه گذاری در MariaDB ندارند. با این حال ، کسانی که از نو شروع می کنند و می خواهند تصمیم بگیرند که از کدام پایگاه استفاده کنند ، بدون شک MariaDB انتخاب بهتری است.
برای خواندن مقاله مقایسه MariaDB،MYSQL،PostgreSQL بر روی لینک کلیک کنید
کلمات کلیدی:مقایسه MariaDB با MySQL،MySQLچیست؟،مقایسه عملکرد MariaDB و MariaDB،MySQL در مقابل MySQL