فهرست محتوا
پایگاه داده یکی از اصلیترین و مهمترین ارکانی است که هر المان نرمافزاری برای کارکردن به آن نیاز دارد. وقتی میگوییم هر چیز نرمافزاری دقیقا منظور ما همه چیز است! یک سایت، یک اپلیکیشن موبایل ساده، یک سیستم عامل، یک برنامه حسابداری که قرار است با داده، محتوا و یا اطلاعاتی خاص کار کنند نیاز به یک پایگاه داده دارند تا این اطلاعات را بر اساس یک طبقهبندی منظم برای استفاده در برنامه ذخیرهسازی کند.
MariaDB یکی از همین پایگاههای داده است که قرار است در این مطلب به بررسی کامل آن پرداخته و ببینیم چه مزایایی میتواند داشته باشد. با ما همراه باشید.
MariaDB چیست و از کجا آمده است؟
پیشتر در مقاله «پایگاه داده چیست» به معرفی این عضو نرمافزاری مهم در برنامهها اشاره کردیم و دیدیم که داشتن یک پایگاه داده تطابقپذیر، روان و ایمن چقدر میتواند به ما در داشتن یک برنامه، سایت و یا اپلیکیشن قوی کمک کند. اکنون میخواهیم یک پایگاه داده کاربردی و حرفهای که استفاده از آن رشد فزایندهای داشته و شما میتوانید از آن در سایت، اپلیکیشن و هر نرمافزاری که فکرش را بکنید استفاده نمایید، را معرفی کنیم.
MariaDB پایگاه دادهای حرفهای است که میتواند نیازهای شما به یک پایگاه داده را به طور کامل پوشش دهد و خیلی از بزرگان دنیای نرمافزار و اینترنت روند خود را تغییر داده و به جمع استفادهکنندگان این پایگاه داده قدرتمند پرداختهاند. MariaDB یک پایگاه داده ریشهدار است که از یکی از قدرتمندترین پایگاه دادههای موجود جدا شده و مسیر پیشرفت خود را دنبال کرده است.
اگر بخواهیم سیر تکامل پایگاه دادهها را بررسی کنیم با داستانی جالب مواجه خواهیم شد. در سالهای ابتدایی گسترش نرم افزارها در دههی هفتاد، پایگاه دادهها و زبانهای پرسوجوی زیادی ایجاد شدند که این خدمات را ارائه دادند. اما بسیاری از آنها توانایی مقاومت در برابر سیل عظیم مشکلات را نداشته و تقریبا به صورت کامل منقرض شدند و اسمی از آنها نماند در این بین تعداد معدودی از شرکتهای بزرگ که توانستند تیمهای طراحی خود را گسترش داده و نیاز روز بازار بزرگ نرمافزار و اینترنت را برطرف کنند، سرپا مانده و به صورت قدرتمندتر و حرفهایتر به کار خود ادامه دادند، این بازار فوقالعاده مهم تا جایی پیش رفت که به دست دو غول عظیم افتاد که یکی از آنها یعنی MSSQL مربوط به مایکروسافت بوده و در پلتفرمهای ویندوزی کار میکرد، و دیگری که MYSQL نام داشت، عرصهی اپنسورس لینوکس را اشغال کرده بود.
MSSQL در انحصار سختگیرانه مایکروسافت و توسط این شرکت رشد پیدا میکرد و تکمیل میشد. شرکت بزرگ دیگری که در بحث پایگاه دادهها خود را مطرحتر از مایکروسافت میدید، نیاز به داشتن یک زبان و پلتفرم پایگاه دادهای جدید و قوی را احساس کرد. به همین علت MYSQL توسط Sun Microsystems یکی از بزرگان این صنعت خریداری شد، که بعد از این اتفاق Oracle که یکی از قدرتمندترین شرکتهای ارائهدهنده سیستم پایگاه داده در جهان است، ایجاد گردید. این اتفاق در سال 2008 تغییرات زیادی را برای این حوزه رقم زد و کار به جایی رسید که تنشهایی بین شرکت صاحبامتیاز و سازنده و خالق این برنامه یعنی مایکل وایدنیس که عموما با نام «مونتی» در مجامع برنامهنویسی و حرفهای شناخته میشد، ایجاد گردید.
این تنش را میتوان آغازگر تفکری برای ایجاد MariaDB دانست. در سال 2008، مونتی که گردانندهی MYSQL AB بود و آبش با شرکت بالادستی خود در یک جوب نمیرفت، از آنها جدا شده و وی پایهی سیستم مدیریت پایگاه دادهای که طراحی کرده بود، MariaDB را ایجاد نمود و آن را به عنوان یک نسخهی جدید ارائه داد که صاحبامتیاز آن خود او بود. این کار ضربهی سنگینی به Oracle وارد کرد و معادلات بازار نرمافزار را به کلی به هم ریخت.
افزایش کاربران MariaDB بعد از این عمل مونتی و همینطور کاهش استفادهکنندگان از Oracle، باعث شد که Sun Microsystems که خود را بزرگترین ارائهدهنده پلتفرمهای پایگاه داده میدانست و رشد تعداد کاربران و محصولاتی که از این پلتفرم استفاده میکنند را با رقمها و اعداد میلیاردی و فونت درشت در هنگام نصب محصولات خود (مانند Java) نمایش میداد، یک ضربهی بسیار سنگین را چشید که تحمل آن از هر کسی بر نمیآمد.
اما MariaDB هنوز در ابتدای راه بود و مسیر طولانیای را برای MYSQL شدن پیش روی خود داشت. مونتی راه خود را ادامه داد و با ارائه ورژنهای متعدد این محصول را به سمت پیشرفت هدایت کرد. در ادامه به بررسی این موضوع خواهیم پرداخت که ورژنهای MariaDB چیست؟
ورژنهای مختلف MariaDB چیست؟
MariaDB کار خود را از اوایل سال 2008 آغاز کرد. به نسبت سایر برنامهها و پلتفرمهای پایگاه دادهای که وجود دارند میتوان آن را یک برنامهی نوپا دانست. البته پلتفرمهای دیگری نیز وجود دارند که جدیدتر از این پلتفرم ارائه شدهاند و پیشرفت خوبی را داشتهاند اما MariaDB با استفاده از پایههای MYSQL توانست مسیر پیشرفت خوبی را طی کند و مورد توجه خیلی از برنامهنویسان قرار بگیرد.
اولین ورژن این برنامه ورژن 5.1 نام داشت که در واقع همان MYSQL 5 بود که با تغییرات جزئی با نام MariaDB در سال 2009 منتشر گردید. با این وجود که ویژگیها و تفاوتهای زیادی با نسخه اصلی MYSQL در این برنامه دیده میشد و MariaDB صرفا اسمی روی آن بود، این نسخه تا سال 2015 توسط شرکت سازنده پشتیبانی گردید و گسترش آن ادامه پیدا کرد. 67 سری آپدیت در طول عمر 6 سالهی این برنامه ارائه شد که رقم بالایی به حساب میآید و ارائه میانگین هر 16 روز یک آپدیت برای یک برنامه را میتوان نشان از جدیت تیم سازنده و گسترشدهندگان این برنامه در پیشرفت آن دانست.
ورژنهای بعدی این برنامه با همان هسته تا سال 2012 ارائه شدند که آخرین آنها 5.5 نام داشت. ورژن 5.5 تا سال 2020 پشتیبانی میشد و آخرین ورژن با هستهی MYSQL بود که MariaDB آن را پشتیبانی میکرد. ورژنی که بعد از 5.5 ارائه شد با تغییرات اساسی همراه بود و خبری از آن MYSQL سابق نبود. این ورژن 10.0 نام گرفت و در سال 2012 توسط این شرکت ارائه گردید. MariaDB 10.0 را میتوان شروع حرکت مستقل این برنامه دانست و همچنان نیز ادامه دارد.
جدیدترین ورژنی که از این برنامه منتشر شده است ورژن 10.5 میباشد که در دسامبر 2019 منتشر گردید و به گفته مدیران این شرکت تا ماه ژوئن سال 2025 قرار است از آن پشتیبانی شود. در مدت یک سال گذشته که این برنامه از MariaDB ارائه شده است تاکنون سه بار آپدیت کلی برای این ورژن معرفی شده است که این تعداد کم نسبت به تعداد بالای آپدیتها در ابتدای مسیر حرکت MariaDB که تقریبا نزدیک به دو هفته یکبار بود نشاندهنده تشکیل شدن طراحی و به انسجام رسیدن طرح MariaDB است.
با معرفی MYSQL به عنوان ریشهی این برنامه ممکن است این تصور به وجود بیاید که این دو برنامه شباهتهای زیادی را با هم دارند. اجازه دهید تا در ادامه به اشتباه بودن این تصور بپردازیم و ببینیم که تفاوت MYSQL و MariaDB چیست و همینطور مزایایی که MariaDB خود را با آنها به این سطح از مقبولیت رسانده است چه هستند.؟
تفاوتها و شباهتهای MYSQL و MariaDB چیست؟
اگر در منابع اصلی که خود MariaDB ارائه میکند یک بررسی ساده انجام دهیم خواهیم دید که MariaDB بهعنوان یک Fork از MYSQL معرفی میگردد. اما این دقیقا به چه معناست؟!
وقتی از اصطلاح Fork برای رابطهای اینچنینی استفاده میکنیم به این معناست که MariaDB یکی از زیرشاخههای MYSQL بوده و تقریبا تمامی ویژگیهای برنامه MYSQL در MariaDB وجود دارد و شما این امکان را خواهید داشت تا در صورت نیاز تمامی پایگاه دادههای MYSQL خود را بدون هیچ تغییر و یا خرابیای در دادهها و تنظیمات، به MariaDB انتقال دهید.
به صورت کلی سازگاری بین MYSQL و MariaDB به مقدار زیادی بالا است و امکان انتقال داده در بین ورژنهای مختلف نیز وجود دارد. اما بعضی از ورژنهای مختلف این دو برنامهی قدرتمند ممکن است ناسازگاریهایی را در زمان انتقال از خود نشان دهند. بهعنوان مثال ورژن 5.5 از برنامه MariaDB توانایی سازگاری با MYSQL 8.0 را ندارد.
اما اگر بخواهیم ببینیم که تفاوت اصلی بین MYSQL و MariaDB چیست میتوانیم به بهینهسازیهای کارایی که دعوای اصلی مونتی و Oracle نیز بر سر آن بود اشاره کنیم. این بهینهسازیها بهصورت فراگیری روی MariaDB اعمال شده است که در خیلی از کاربردهای آنها کاربر یا APIهایی که با برنامه درگیر هستند بهراحتی میتوانند با دردسر خیلی کمتری این کارها را انجام دهند. این بهینهسازیها را میتوان به عنوان مزایای MariaDB معرفی نمود. در ادامه این مطلب به این سوال میپردازیم که مزایای MariaDB چیست و چگونه بر بهینه بودن کاربرد آن تاثیر میگذارند؟
مزایا و ویژگیهای اصلی MariaDB چیست؟
همانطور که گفتیم آنچه که MariaDB را بهعنوان یک عضو جدا از MYSQL معرفی میکند و دلیلی که باعث شده است تا استفادهکنندگان از پشتیبانیهای حرفهای و سطح بالای شرکتی مانند Oracle صرف نظر کرده و MariaDB را برای برنامه یا سایت خود انتخاب کنند، بهینهسازیهایی است که MariaDB ارائه میکند. این بهینهسازیها تا حد زیادی باعث بالارفتن راحتی کار با این پایگاه داده، افزایش امنیت و همینطور افزایش سرعت کارکرد خواهند شد که در کل راندمان MariaDB را بالا میبرد.
Database Views (ویوهای مجازی از پایگاه داده)
یکی از اصلیترین مواردی که بهینهسازی شده است ویوهای دیتابیس است. یک ویوی دیتابیس نشاندهنده اطلاعاتی است که بر اساس درخواست کاربر از پایگاه داده، به صورت یک جدول مجازی در اختیار وی قرار خواهد گرفت. این جدول مجازی میتواند ستونهایی را به هم مرتبط کرده باشد که هر کدام از آنها در یک جدول جداگانه قرار دارند. همینطور ممکن است رکوردهای مختلف را نیز جمعآوری کرده و به صورت یکجا بهعنوان پاسخ پرسوجو در اختیار کاربر قرار دهد.
در MYSQL وقتی که یک پرسوجو یا کوئری مطرح شود، تعداد زیادی از ستونها و جداول به کاربر نشان داده خواهد شد که این امر میتواند موجب برخی اختلالات شود که ضعفهای امنیتی و امکان افشای اطلاعات یکی از مهمترین آنها میباشد. در MariaDB با بهینهسازیهای انجام شده، یک ویو شستهورُفته و تمیز در اختیار کاربر قرار خواهد گرفت که هم استفاده از آن سادهتر است و هم امکان لو رفتن اطلاعات را بسیار پایین میآورد.
Virtual Columns (ستونهای مجازی)
ستونهای مجازی را میتوان یکی از ابداعات فوقالعاده برای MariaDB دانست که خیلی از بار محاسباتی برنامههای مختلف را کم نمود. در انتهای جداول این پایگاه داده، یک ستون مجازی یا غیرواقعی که متعلق به دیتابیس نبوده و بهصورت نرمافزاری و مجازی قرار دارد ایجاد میشود. این ستون قادر خواهد بود تایم عملیات ریاضی و فرمولی که از آن خواسته میشود را روی ردیفهای مختلف جدول اعمال انجام داده و آن را ذخیره نماید.
با این کار دیگر نیازی نیست که در سورس برنامه اطلاعات از جداول بیرون آورده شود و محاسبات روی آنها انجام شود. صرفا برنامه به آن ستون دسترسی پیدا کرده و اطلاعات محاسبه شده موردنیاز خود را صرفا از آن میخواند. در صورتی که محاسبه در برنامه انجام گیرد منابع سیستم مصرف شده و زمان اجرا بالاتر میرود اما این کار باعث میشود که پایگاه داده کمی بزرگتر شده اما منابع سیستم به صورتی بهینهتر مورد استفاده قرار گیرد.
این قابلیت را میتوان یکی از بزرگترین ابداعات MariaDB دانست که البته MYSQL نیز در برخی از ورژنهای خود از آن پشتیبانی میکند.
Column Store (ذخیرهسازی بهصورت ستونی)
ذخیرهسازی ستونی یکی از قابلیتهایی است که در MariaDB ایجاد شده است. اما کارایی این قابلیت حرفهای MariaDB چیست؟!
با استفاده از این امکان شما میتوانید دادههای موردنظر را به صورت ستونی ذخیرهسازی کنید. و این کاملا برخلاف روشهای قبلی است که دادهها به صورت سطری ذخیرهسازی میشدند. در ذخیرهسازی سطری به دلیل متفاوت بودن دادههای هر ستون از سر، حجم و مدت زمان زیادی صرف میشد. اما این کار امکان استفاده از فشردهسازیها و تکنیکهای مختلف برای بالا بردن سرعت را ایجاد نموده است و برای دادههای بزرگ و همینطور در مبحث Big Dataها میتواند بسیار مفید باشد.
پشتیبانی از MyRocks
MyRocks ارائهکننده یک سیستم پایگاه دادهای به نام RockDB است که میتوان آن را در فشردهسازی دادهها بهترین دانست. با استفاده از موتور MyRocks شما این قابلیت را خواهید داشت تا از امکانات این پایگاه داده برای فشردهسازی بهرهمند شوید.
همینطور این امکان ایجاد شده است که دادهها را بین این دو پایگاه داده جابجا کرده و بدون تغییرات میتوانید اساس پایگاه داده خود را تغییر دهید.
Thread Pooling (لیست وظایف)
قابلیت دیگری که منحصرا برای MariaDB ایجاد شده است. این قابلیت اساس کار پایگاههای داده که به هر دسترسی به پایگاه داده، اجازه داشتن یک thread را میداد، به کلی متحول نمود. اجازه دهید که ببینیم نحوه کارکرد این قابلیت مهم از MariaDB چیست؟
این قابلیت به این پایگاه داده یک اکانت ویژه میدهد که با تکنیکهای نرمافزاری Pooling درخواستهای داده را مرتب کند. در این تکنیک یک بخش به نام Pool ایجاد میشود که به مانند یک فهرست عمل کرده و کلیهی درخواستها در آن قرار میگیرد و المانهای پایگاه داده این درخواستها را با threadهای مختلف و بعضا چندگانه مدیریت کرده و پاسخ میدهند.
با این کار در پایگاه داده شما این قابلیت که به کوئریها و درخواستهای اطلاعات سریعتر پاسخدهی شود وجود خواهد داشت. این قابلیت که توسط MariaDB ارائه شد در حال گسترش بوده و خیلی از پایگاه دادهها را به سمت خود متمایل کرده است.
تضمین استفاده از MariaDB چیست؟
شاید این مزایای معرفی شده به اندازهای وسوسهکننده باشند که شما نیز به فکر افتاده باشید که پایگاه دادهی سایت خود و یا برنامهای که قصد ساخت آن را دارید، روی MariaDB بنا کرده و از آن استفاده کنید. قطعا MariaDB برای کار خود یک تضمین دارد که به ما ثابت کند این قابلیتها ادعا نیست و واقعا میتواند از پس آنها بربیاید!
وقتی حرف از تضمین میزنیم باید بدانیم که چه استفادههایی از این پلتفرم شده و این پلتفرم توانایی تحمل حجمهای زیاد از داده را دارد یا صرفا یک پلتفرم فانتزی برای پایگاه دادههای کوچک است که زیادی به آنها زرقوبرق داده است.
برای این کار MariaDB لیستی از مشتریان خود را معرفی نموده و گفته است که در حال مدیریت پایگاه دادههایی اینچنینی است:
- گوگل
- موزیلا
- بانک DBS سنگاپور
- Arch Linux
- Manjaro
- Debian از نسخه 9 به بعد
- Fedora از نسخه 19 به بعد
- openSUSE از نسخه 12.5 به بعد
- و بسیاری از توزیعهای دیگر لینوکس
خب! ظاهرا MariaDB مدارک محکم و قابل تاملی را برای خود ارائه میکند که سندیت حرف خود را ثابت کند. وقتی سیستم عاملها، بانکها و پلتفرمهای بزرگ دیگری مانند گوگل و موزیلا که پایگاه دادههای توزیعشده را مدیریت میکنند از این پلتفرم استفاده میکنند، میتوان این نتیجه را گرفت که ادعاهای MariaDB برای امکانات و بهینهسازیهایی که میگوید انجام داده است صحیح است. البته استفاده از این پلتفرم بستگی به نیاز شما دارد و تصمیمگیری از آن به عهده شما خواهد بود، ولی توصیه میشود که مزایای آن را دستکم نگیرید.
نتیجهگیری
MariaDB چیست سوالی بود که به تفصیل پاسخ آن را بررسی کردیم و دیدیم که این برنامهی بزرگ چه قابلیتهایی را میتواند داشته باشد و چه امکاناتی را برای ما فراهم خواهد نمود. امکانات بهینهسازیهایی که MariaDB ادعای انجام آنها را دارد میتواند پایگاه دادهی سایت یا اپلیکیشن شما را به اندازهای قدرتمند سازد که حتی بتوانید از منابعی که برای آن در نظر گرفتید، در موارد دیگری استفاده کرده و کاهش هزینه را برای شما به دنبال داشته باشد. اما باید در مورد سازگاری آن با پایگاه داده فعلی شما و همینطور اینکه هزینهها و پشتیبانی از این پلتفرم پایگاه داده به چه صورتی خواهد بود دقت کنید.
MariaDB با توجه به تفاسیر گفته شده و بررسیهایی که انجام دادیم یکی از پلتفرمهای قابلاطمینان است که در عمل نیز خود را ثابت کرده است و اگر قصد استفاده از آن را دارید امیدواریم که بتواند نیازهای شما را به همان نحوی که مدنظر داشتید پاسخگو باشد.