بعد 10 سنوات من تأسيس فرع 10.x ، تم إصدار MariaDB 11.0.0 ، مما أدى إلى العديد من التحسينات الرئيسية وكسر تغييرات التوافق. لا يزال الفرع في جودة إصدار ألفا وسيكون جاهزًا لتطبيقات الإنتاج بعد التثبيت. من المتوقع ألا يتجاوز الفرع المهم التالي من MariaDB 12 ، الذي يحتوي على تغييرات تكسر التوافق ، في موعد لا يتجاوز 10 سنوات (في عام 2032).
يُطوّر مشروع MariaDB نسخةً مُعدّلة من MySQL، مع الحفاظ على التوافق مع الإصدارات السابقة قدر الإمكان، وإضافة مُحركات تخزين إضافية وميزات مُتقدّمة. وتشرف مؤسسة MariaDB المُستقلة على تطوير MariaDB، مُتّبعةً عملية تطوير مفتوحة وشفافة لا تخضع لسيطرة أي مُورّد. ويتم توفير MariaDB كبديل لـ MySQL في العديد من توزيعات البرامج. Linux (RHEL، SUSE، Fedora، openSUSE، Slackware، OpenMandriva، ROSA، Arch) Linux, Debian) وقد تم تطبيقها في مشاريع ضخمة مثل ويكيبيديا، وجوجل كلاود إس كيو إل، ونيمبوز.
يتمثل التحسين الرئيسي في فرع MariaDB 11 في انتقال مُحسِّن الاستعلامات إلى نموذج تكلفة جديد، يُوفر تنبؤات أكثر دقة لأوزان كل خطة تنفيذ استعلام. على الرغم من أن النموذج الجديد يُساعد في التخلص من بعض اختناقات الأداء، إلا أنه قد لا يكون مثاليًا في جميع السيناريوهات، وقد تتباطأ بعض الاستعلامات، لذا نُشجع المستخدمين على المشاركة في الاختبار وإبلاغ المطورين في حال حدوث أي مشاكل.
كان النموذج المُستخدم سابقًا جيدًا في إيجاد الفهرس الأمثل، ولكنه واجه مشاكل في إمكانية تطبيق عمليات مسح الجدول، أو مسح الفهرس، أو تحديد النطاق. يُزيل النموذج الجديد هذا العيب بتغيير الوزن الأساسي لعمليات محرك التخزين. عند تقييم أداء العمليات المعتمدة على القرص، مثل مسح السجلات التسلسلي، يُفترض الآن تخزين البيانات على قرص SSD يوفر سرعة قراءة تبلغ 400 ميجابايت في الثانية. بالإضافة إلى ذلك، تم ضبط معلمات وزن المُحسِّن الأخرى، مما أتاح، على سبيل المثال، إمكانية استخدام الفهارس لعمليات ORDER BY/GROUP BY في الاستعلامات الفرعية، وتسريع العمل مع الجداول الصغيرة جدًا.
وتجدر الإشارة إلى أن نموذج الوزن الجديد سيسمح باختيار خطة تنفيذ استعلام أكثر مثالية في المواقف التالية:
- عند استخدام الاستعلامات التي تمتد لأكثر من جدولين.
- عندما تكون هناك فهارس تحتوي على عدد كبير من القيم المتطابقة.
- عند استخدام نطاقات تغطي أكثر من 10٪ من الجدول.
- عندما يكون لديك استعلامات معقدة حيث لا تتم فهرسة جميع الأعمدة المستخدمة.
- عند استخدام الاستعلامات التي تتضمن محركات تخزين مختلفة (على سبيل المثال ، عندما يحتوي استعلام واحد على وصول إلى الجداول في InnoDB ومحركات الذاكرة).
- عند استخدام FORCE INDEX لتحسين خطة الاستعلام.
- عندما تسوء خطة الاستعلام في حالة استخدام "ANALYZE TABLE".
- عندما يمتد الاستعلام على عدد كبير من المشاهدات (عدد كبير من SELECTs المتداخلة).
- عند استخدام جمل ORDER BY أو GROUP BY التي تطابق الفهارس.
فواصل التوافق الرئيسية في فرع MariaDB 11:
- لم تعد حقوق SUPER تسمح لك بتنفيذ الإجراءات التي تتوفر لها الامتيازات المعينة بشكل منفصل. على سبيل المثال ، سيتطلب تغيير تنسيق السجلات الثنائية حقوق BINLOG ADMIN.
- تمت إزالة تنفيذ المخزن المؤقت للتغيير في InnoDB.
- تم إيقاف استخدام innodb_flush_method و innodb_file_per_table.
- تم إيقاف الدعم لأسماء mysql*.
- إعداد تم إيقاف العمل صريح_defaults_for_timestamp على 0.
- تم نقل الروابط الرمزية إلى حزمة منفصلة للتوافق مع MySQL.
- تم تغيير قيمة المعلمة innodb_undo_tablespaces من الافتراضي إلى 3.
المصدر: opennet.ru
