ما الفرق بين MariaDB وMySQL؟
إنّ كلّ من MySQL وMariaDB من تقنيات قواعد البيانات المفتوحة المصدر. ويمكنك استخدامهما لتخزين البيانات بتنسيق جدولي يتضمّن صفوف وأعمدة. MySQL هي قاعدة البيانات المفتوحة المصدر الأكثر استخدامًا. وهي قاعدة البيانات العلائقية الأساسية للعديد من مواقع الويب والتطبيقات والمنتجات التجارية الشهيرة. MariaDB هي نسخة معدلة من MySQL. وقد أنشأ فريق التطوير الأصلي في MySQL نسخة MariaDB بسبب مخاوف الترخيص والتوزيع بعد أن استحوذت شركة Oracle Corporation على MySQL. منذ الاستحواذ، تطورت MySQL وMariaDB بشكل مختلف. ومع ذلك، تتبنى MariaDB بيانات MySQL وملفات تعريف الجدول، وتستخدم أيضًا بروتوكولات العميل المتطابقة وواجهات برمجة تطبيقات العميل والمنافذ ومآخذ التوصيل. هذا يهدف إلى السماح لمستخدمي MySQL بالتبديل إلى MariaDB بسهولة.
ما أوجه التشابه بين MariaDB وMySQL؟
MySQL هو نظام إدارة قواعد البيانات الارتباطية الصادر في عام 1995. وفي عام 2009، أصدر المطورون قاعدة بيانات MariaDB كفرع من MySQL 5.1.38 خاص بالتعليمات البرمجية.
نظرًا إلى أن قاعدة بيانات MariaDB متفرعة من نظام MySQL، فإنه توجد العديد من أوجه التشابه بين نظامي إدارة قواعد البيانات الارتباطية. فعلى سبيل المثال، احتفظت قاعدة بيانات MariaDB بالهيكل واصطلاحات التسمية وملفات تعريف البيانات لنظام MySQL. بالإضافة إلى ذلك، فهي تدعم جميع موصلات نظام MySQL واتصالاته ومنافذه. تعمل حزمة عميل MySQL الخاصة بك بدون إجراء أي تغييرات مع MariaDB.
نستعرض فيما يلي أمثلة على أوجه التشابه الأخرى.
الامتثال لـ ACID
إن الدقة والاتساق والعزل والقدرة على التحمل (ACID) هي المبادئ الأربعة الأساسية التي تضمن موثوقية المعاملات التي تُجرى في قاعدة البيانات. ويدعم نظام MySQL وقاعدة بيانات MariaDB هذه المبادئ. عند الامتثال لمبادئ ACID، تحافظ قاعدتا البيانات على دقة البيانات وتكاملها.
التوافق مع لغة SQL
إن نظام MySQL وMariaDB هما قاعدتا بيانات ارتباطية تنظمان البيانات في جداول. ويستخدمان لغة SQL في إدارة البيانات والاستعلام عنها. يمكنك استخدام العديد من الأوامر نفسها عبر هذين النظامين.
البرمجيات مفتوحة المصدر
إن MySQL وMariaDB هما نتاج الجهود التعاونية التي بذلها مجموعة من المطورين باعتبارهما نظامين لإدارة قاعدة البيانات الارتباطية مفتوحة المصدر. وتتسم التعليمة البرمجية المصدر الخاصة بهما بأنها متاحة للجمهور.
تتضمن قاعدة بيانات MySQL إصدارًا واحدًا مفتوح المصدر بالكامل صادرًا بموجب الرخصة العمومية (GPL). وتتضمن أيضًا إصدارًا واحدًا مدفوعًا للشركات يضم ميزات ودعم إضافي. وتُعد MariaDB مفتوحة المصدر بالكامل على GitHub.
الأمان
يقدم نظام MySQL وMariaDB ميزات أمان أساسية مماثلة. وتوفران التشفير، وآليات التحكم في الوصول، ومصادقة المستخدمين وتفويضهم، ودعم SSL/TLS. ويتيحان أيضًا التحكم الدقيق في الوصول بحيث يمكنك منح مستويات متنوعة من الأذونات إلى مستخدمين مختلفين.
الاختلافات الرئيسة: MariaDB مقابل MySQL
استمرت قاعدة بيانات MariaDB في توسيع إمكاناتها منذ تفرعها من نظام MySQL. وقد أدت بعض هذه التغييرات إلى وجود اختلافات في الوظائف الأساسية والإمكانات والأداء.
نستعرض فيما يلي الاختلافات المهمة بين MySQL وMariaDB.
معالجة البيانات بتنسيق JSON
يدعم نظام MySQL وMariaDB استرداد البيانات بتنسيق JSON وتخزينها. ومع ذلك، فإنهما يخزنان تقارير بتنسيق JSON بطرق مختلفة. تخزن قاعدة بيانات MariaDB التقارير بتنسيق JSON في سلاسل، بينما يخزن نظام MySQL هذه التقارير ككائنات ثنائية.
لا يدعم MySQL وMariaDB أيضًا كل وظائف JSON. وتدعم قاعدة بيانات MariaDB الوظيفتين JSON_QUERY وJSON_EXISTS، بينما لا يدعمهما نظام MySQL. وكذلك، يدعم نظام MySQL نوع البيانات بتنسيق JSON الأصلي JSON_TABLE غير المدعوم في قاعدة بيانات MariaDB.
ولكن، لا تدعم قاعدة بيانات MariaDB إلا أنواع البيانات ذات التنسيق JSON منذ طرح الإصدار 10.2. علمًا بأن نوع البيانات بتنسيق JSON المُستخدم في قاعدة بيانات MariaDB هو اسم مستعار للنوع LONGTEXT.
الوظائف
نظرًا إلى اختلاف مسارات التطوير الخاصة بهما، فإن MariaDB وMySQL يوفران الآن وظائف مختلفة اختلافًا بسيطًا.
فعلى سبيل المثال، يوفر نظام MySQL أعمدة ديناميكية تتيح لك تحديد قيم بيانات متعددة في عمود واحد وتعديل عمود الوظائف. وتسمح الأعمدة الديناميكية بإخفاء البيانات لحماية المعلومات الحساسة.
أما قاعدة بيانات MariaDB، فإنها تدعم الأعمدة غير المرئية في طرق عرض قاعدة البيانات. ولا تُدرج الأعمدة غير المرئية عندما ينفذ المستخدم بيان SELECT أو يطلب قيمة في بيان INSERT.
مصادقة المستخدم
يتضمن نظام MySQL المكون validate_password، الذي يمكنك استخدامه في تعزيز أمان كلمة المرور.
لا تتضمن قاعدة بيانات MariaDB هذه الوظيفة افتراضيًا، ولكنها توفر ثلاثة مكونات إضافية لأداة التحقق. يمكنك استخدام مكونات أداة التحقق من صحة كلمة المرور الإضافية هذه لإضافة قدر أكبر من الحماية حول كلمات المرور. في الإصدار 10.4، قدمت MariaDB مكون المصادقة الإضافي ed25519 ليحل محل مصادقة SHA-1 المستخدمة مسبقًا. يساعد هذا في مصادقة المستخدمين وتخزين كلمات المرور بأمان.
التشفير
تُشفّر كل من MySQL وMariaDB البيانات غير النشطة والبيانات المتنقلة.
تتيح MySQL للمستخدمين المسؤولين تكوين سجلات الإعادة والتراجع وتشفيرهما، بينما لا تُشفّر بيئة التخزين الجدولية المؤقتة أو السجلات الثنائية.
من جهة أخرى، تدعم MariaDB تشفير السجل الثنائي وتشفير الجدول المؤقت.
تجميع الخيوط
يتيح تجميع الخيوط لقاعدة البيانات تحسين مواردها عن طريق الجمع بين الاتصالات الجديدة والخيوط الموجودة مسبقًا. تُعد قدرة تجميع الخيوط العالية أمرًا حيويًا للتطبيقات التي ترغب في توسيع نطاق آلاف المستخدمين وخدمتهم بشكلٍ متوازٍ.
تتضمن MariaDB تجميع الخيوط في مكون تجميع الخيوط الإضافي لديها، الذي يُعد جزءًا من إصدار المجتمع. توفر MariaDB القدرة على إدارة أكثر من 200 ألف اتصال في الوقت ذاته.
تحتوي MySQL على مكون تجميع خيوط إضافي في إصدار المؤسسة لديها. لكن، لا يمكنها معالجة العديد من الاتصالات في الوقت ذاته مثل MariaDB.
حالات استخدام MariaDB مقابل MySQL
تتميز MariaDB بأنها أكثر قابلية للتوسع، وتوفر سرعة استعلام أعلى عند مقارنتها بنظام MySQL؛ ما يجعلها مناسبة لإدارة البيانات كبيرة الحجم. ستجد أيضًا ميزات إضافية متوفرة في MariaDB وغير متوفرة في MySQL، مثل محركات تخزين التسلسل والأعمدة الافتراضية. ويمكنك أيضًا استخدام محركات متعددة في جدول واحد.
على الرغم من ذلك، طُرح نظام MySQL منذ فترة أطول بكثير قبل طرح MariaDB. وتفضل بعض المؤسسات استخدام دعم الشركات المتوفر في نظام MySQL.
نستعرض فيما يلي أمثلة على الاعتبارات التي تُراعى عند اختيار قاعدة البيانات.
محركات التخزين
في أنظمة إدارة قواعد البيانات، تُعد محركات التخزين مكونًا يساعد في استرداد البيانات وتحديثها وتخزينها داخل قاعدة البيانات. وقد يؤثر محرك التخزين الذي تريد استخدامه في القرار الذي تتخذه.
يمكنك استخدام محركات تخزين متعددة في MySQL و MariaDB، ولكن تتوفر خيارات أقل في نظام MySQL. ويتضمن نظام MySQL بعض محركات التخزين مثل InnoDB وCSV وFederated وMyISAM وMerge وFederated.
تدعم قاعدة بيانات MariaDB بعض محركات التخزين غير المدعومة في MySQL مثل XtraDB وAria وInnoDB وMariaDB ColumnStore وMemory وCassandra وConnect.
الترخيص
يتضمن كل من نظام MySQL وMariaDB إصدارات الرخصة العمومية (GPL). وتخضع قاعدة بيانات MariaDB لمصادقة الرخصة العمومية (GPL) بالكامل، بينما يخضع نظام MySQL لترخيصين وهما الترخيص العام والخاص.
يتيح الترخيص الخاص لإصدار MySQL enterprise edition إمكانات إضافية مثل تجميع الخيوط التي تزيد سرعة الاستعلام. وقد تفضل الشركات التي تريد توزيع برنامج MySQL الخاص بها بدون توزيع التعليمة البرمجية المصدر بموجب الرخصة العمومية (GPL) استخدام إصدار MySQL enterprise edition.
التوافق مع قاعدة بيانات Oracle
إن التوافق مع قاعدة بيانات Oracle عبارة عن قدرة قاعدة بيانات Oracle على استخدام تطبيق منشأ باستخدام قواعد بيانات MariaDB أو MySQL.
إذا كانت مؤسستك تستخدم بالفعل منتجات قاعدة بيانات Oracle، فقد تفضل استخدام MySQL. وتوفر قاعدة بيانات Oracle وضع توافق معينًا لصيغة SQL الخاصة بنظام MySQL. ومع ذلك، لا يدعم نظام MySQL لغة PL/SQL وهي اللغة الموجهة للتطبيقات التي طورتها Oracle.
منذ طرح الإصدار 10.3، كانت قاعدة بيانات MariaDB تدعم لغة PL/SQL. وتوفر MariaDB أيضًا وضع التوافق مع صيغة Oracle لتشغيل تطبيقات قاعدة بيانات Oracle بدون إجراء أي تغييرات.
السرعة والأداء
منذ سنوات عديدة، تفوق نظام MySQL على قاعدة بيانات MariaDB في العديد من حالات الاستخدام. فعلى سبيل المثال، يمكن للإصدار MySQL 8.0 معالجة المزيد من الاستعلامات في الثانية مقارنةً بالإصدار 10.3 من MariaDB. ومع ذلك، أجرت MariaDB العديد من التحسينات خلال السنوات الأخيرة.
تعمل قاعدة بيانات MariaDB بشكل أسرع حاليًا من حيث تنفيذ الاستعلامات ومهام النسخ المتماثل. وقد تفضل استخدام MariaDB في أعباء العمل المهمة بالنسبة للأداء.
هل يمكنك التبديل من MySQL إلى MariaDB؟
نعم، يمكنك التبديل من MySQL إلى MariaDB بأقل جهد. إن MariaDB مصممة لتكون متوافقة مع الإصدارات السابقة من MySQL. ويعني ذلك أن التطبيقات والنصوص المكتوبة لأجل MySQL يجب أن تعمل مع MariaDB بدون إجراء أي تغييرات مهمة.
حتى الإصدار MariaDB 5.5، اتبع خادم MariaDB مخطط ترقيم إصدارات MySQL، بهدف التوافق مع الإصدار الرئيس نفسه من MySQL. وفي عام 2012، اختلف ترقيم إصدارات MariaDB Server بهدف توضيح عدد الميزات المتزايد التي لم تكن متوفرة في MySQL. طُرح الإصدار 10.0 من MariaDB، بينما طُرح الإصدار 5.6 من MySQL.
يظل خادم MariaDB Server محتفظًا بمستويات عالية من التوافق مع MySQL. وتُدعم الترقيات من إصدارات MySQL القديمة إلى أحدث إصدارات MariaDB مع إجراء ترقية موضعية.
يتم التبديل من MySQL إلى MariaDB من خلال اتباع إجراءات تثبيت قياسية. ويمكنك تشغيل الأداة mysql_upgrade لتحديث امتيازات قاعدة بيانات MySQL وجداول الأحداث مع مكافئات MariaDB.
ملخص الاختلافات: MySQL مقابل MariaDB
MySQL |
MariaDB |
|
JSON |
يخزن نظام MySQL التقارير بتنسيق JSON ككائنات ثنائية. |
تخزن قاعدة بيانات MariaDB التقارير بتنسيق JSON في سلاسل. علمًا بأن نوع البيانات بتنسيق JSON في قاعدة بيانات MariaDB هو اسم مستعار للنوع LONGTEXT. |
التوافق مع قاعدة بيانات Oracle |
يتمتع نظام MySQL بمستوى عالٍ من التوافق، ولكنه لا يدعم لغة PL/SQL. |
تتمتع قاعدة بيانات MariaDB بمستوى عالٍ من التوافق، وتدعم لغة PL/SQL منذ طرح الإصدار 10.3. |
السرعة والأداء |
يعمل نظام MySQL بشكل أبطأ قليلاً مقارنةً بقاعدة بيانات MariaDB عند إجراء النسخ المتماثل والاستعلام. |
تعمل قاعدة بيانات MariaDB بشكل أسرع قليلاً مقارنةً بنظام MySQL عند إجراء النسخ المتماثل والاستعلام. |
الوظائف |
يدعم نظام MySQL وظيفة القراءة الفائقة فقط والأعمدة الديناميكية وإخفاء البيانات. |
تدعم قاعدة بيانات MariaDB الأعمدة غير المرئية ومساحة الجدول المؤقت. |
المصادقة |
يتضمن نظام MySQL المكون validate_password. |
تتضمن قاعدة بيانات MariaDB ثلاثة مكونات إضافية لأداة التحقق من كلمة المرور. |
التشفير |
تستخدم قواعد بيانات MySQL المحرك InnoDB ومعيار التشفير المتقدم (AES) في تشفير البيانات غير النشطة. |
تدعم قاعدة بيانات MariaDB تشفير السجل المؤقت وتشفير السجل الثنائي. |
محركات التخزين |
يتضمن نظام MySQL محركات تخزين أقل مقارنةً بقاعدة بيانات MariaDB. |
تتضمن قاعدة بيانات MariaDB محركات تخزين أكثر مقارنةً بنظام MySQL، ويمكنها استخدام محركات متعددة في جدول واحد. |
الترخيص |
يتضمن نظام MySQL إصدارين هما: إصدار MySQL Enterprise Edition وإصدار الرخصة العمومية (GPL). |
تخضع قاعدة بيانات MariaDB بالكامل للرخصة العمومية (GPL). |
تجميع الخيوط |
يتضمن نظام MySQL نمط تجميع الخيوط في إصداره Enterprise Edition. |
يمكن لقاعدة بيانات MariaDB إدارة ما يزيد على 200 ألف اتصال في وقت واحد وهو أكثر من الاتصالات التي يديرها نظام MySQL. |
كيف يمكن أن تدعم AWS متطلباتك في MySQL وMariaDB؟
خدمة قاعدة البيانات الارتباطية في Amazon (Amazon RDS) هي مجموعة من الخدمات المُدارة بالكامل التي تبسِّط عملية إعداد قواعد البيانات وتشغيلها وتوسيع نطاقها في السحابة.
يمكنك الاختيار من سبعة محركات شائعة مخصص اثنين منها لـ MySQL وMariaDB. وتدعم خدمة قاعدة البيانات الارتباطية في Amazon (Amazon RDS) في قاعدة بيانات Maria DB خادم MariaDB Server بالإصدارات 10.3 و10.4 و10.5 و10.6. بينما تدعم خدمة Amazon RDS for MySQL خادم MySQL Community Edition بالإصدارين 5.7 و8.0.
فيما يلي بعض الطرق التي يمكنك من خلالها الاستفادة من استخدام خدمة قاعدة البيانات الارتباطية في Amazon (Amazon RDS):
- نشر قواعد بيانات MariaDB وMySQL السحابية القابلة للتوسع في غضون دقائق مع توفير سعة أجهزة فعالة من حيث التكلفة وقابلة للتحجيم
- استخدام التعليمات البرمجية والتطبيقات والأدوات المتاحة بدون إجراء أي تغييرات
- الوصول إلى أكثر من 50 مقياسًا لوحدة المعالجة المركزية والذاكرة ونظام الملفات وعمليات الإدخال/الإخراج الخاصة بمحرك الأقراص لإجراء المراقبة المتقدمة لقاعدة البيانات
- الاستمتاع بتحسين التوافر وقوة التحمل للتوسع بشكل مرن بما يتجاوز قيود السعة لمثيل واحد في قاعدة البيانات
ابدأ في استخدام MySQL وMariaDB على AWS بمجرد إنشاء حساب اليوم.