قامت Oracle بإنشاء فرع جديد لنظام MySQL 9.1.0 DBMS. تم إعداد إصدارات MySQL Community Server 9.1.0 لجميع توزيعات Linux وFreeBSD وmacOS وWindows الرئيسية. كجزء من نموذج الإصدار الجديد الذي تم طرحه العام الماضي، تم تصنيف MySQL 9.1 على أنه فرع "الابتكار"، والذي سيتضمن أيضًا الإصدار الرئيسي التالي، MySQL 9.2. يوصى بفروع الابتكار لأولئك الذين يريدون الوصول المبكر إلى الوظائف الجديدة، ويتم نشرها كل 3 أشهر ويتم دعمها فقط حتى نشر الإصدار المهم التالي (على سبيل المثال، بعد ظهور الفرع 9.1، توقف دعم الفرع 9.0 ). يخططون في الصيف المقبل لإنشاء إصدار LTS موصى به للتطبيقات التي تتطلب القدرة على التنبؤ والحفاظ على السلوك دون تغيير على المدى الطويل. بعد فرع LTS، سيتم إنشاء فرع جديد للابتكار - MySQL 10.0.
التغييرات الرئيسية في MySQL 9.1:
- تمت إضافة دعم للتعبير "إذا لم يكن موجودًا" إلى عملية "إنشاء عرض"، مما يسمح لك بتنظيم إنشاء عرض فقط في حالة عدم وجود عرض بالاسم المحدد بالفعل وتجنب إرجاع خطأ إذا كان العرض تم إنشاؤه بالفعل.
- توقف تحميل المشغلات عند إجراء عمليات للقراءة فقط. في السابق، كان يتم تحميل المشغلات عند الوصول إلى جدول، مما يؤدي إلى إهدار الذاكرة وإنشاء حمل على وحدة المعالجة المركزية (CPU) في المواقف التي لا يتم فيها استخدام المشغلات (على سبيل المثال، عند تنفيذ استعلامات SELECT). في MySQL 9.1، تنقسم معالجة وتحميل المشغلات إلى مرحلتين: قراءة البيانات الوصفية حول المشغل والتحليل + تنفيذ المشغل. يتم تخزين البيانات التي تم الحصول عليها في المرحلة الأولى مرة واحدة ثم تتم مشاركتها عبر مثيلات التشغيل المختلفة. يتم تحليل المشغل وتنفيذه فقط للتعبيرات التي تغير البيانات. بالإضافة إلى ذلك، لتقليل استهلاك الذاكرة، بدلاً من تخصيص المخازن المؤقتة بشكل ثابت لمعالجة الأخطاء في المشغلات، قمنا بالتبديل إلى تخصيص الذاكرة الديناميكية حسب الحاجة.
- تم توسيع مخرجات عملية EXPLAIN لإظهار معلومات حول استخدام القراءات متعددة النطاق واستخدام إستراتيجية Semijoin، حيث تقوم عمليات JOIN بمعالجة الصفوف من جدول واحد فقط.
- يتم توفير التنفيذ الذري لعمليتي "إنشاء قاعدة بيانات" و"إسقاط قاعدة بيانات" للحماية من الفشل في حالة حدوث عطل أو أخطاء على مستوى نظام الملفات أثناء تنفيذ هذه العمليات. على سبيل المثال، في السابق، عند تعطل "إنشاء قاعدة بيانات"، كان من الممكن إنشاء بنية تخزين غير مكتملة لقاعدة بيانات غير عاملة، الأمر الذي يتطلب تدخلاً يدويًا للتنظيف.
- توفر الإجراءات المخزنة المكتوبة بلغة JavaScript الدعم لنوع VECTOR. يمكن الآن تمرير البيانات ذات النوع المحدد في معلمات الإدخال والإرجاع.
- تمت إضافة القدرة على المصادقة عند الاتصال بنظام إدارة قواعد البيانات (DBMS) باستخدام بروتوكول OpenID Connect.
- تم إصلاح سبعة وعشرين ثغرة أمنية، وأخطرها (CVE-2024-5535) صُنفت ضمن مستوى الخطورة الحرجة (9.1 من 10). يمكن استغلال هذه الثغرة عن بُعد دون الحاجة إلى مصادقة. ينجم هذا الخلل عن قراءة خارج النطاق في مكتبة OpenSSL، مما يؤدي إلى تعطل النظام أو تسرب الذاكرة في الاستجابة بعد الاتصال بـ الخادم مع الإشارة إلى وجود معلمات بروتوكول غير صحيحة.
المصدر: opennet.ru
