English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
أعلنت فريق تطوير MySQL في 12 من الشهر الماضي عن إصدار ميليستون فيرسيون (DMR) لـ MySQL 8.0.0! قد يكون مفاجئًا لبعض الناس لماذا قفز MySQL من 5.x إلى 8.0. في الواقع، سلسلة MySQL 5.x استمرت لسنوات عديدة، وكانت 5.1 قبل أن يتم استحواذ Oracle عليها، وتم الحفاظ على 5.x بعد الاستحواذ، مثل 5.5، 5.6، 5.7 وما إلى ذلك. في الواقع، إذا تمت مقارنةها بالتردد الأصلي للإصدارات، يمكن اعتبار 5.6.x كـ 6.x، و5.7.x كـ 7.x. لذا، فإن الأمر مجرد تغيير في طريقة تسمية الإصدارات.
لكن هذه المرة، إصدار MySQL 8.0.0 الإصدار التجريبي يحتوي على العديد من الميزات اللامعة.
ميزات MySQL 8.0.0
قائمة البيانات التفاعلية، قد تم الابتعاد عن محرك التخزين MyISAM
تم وضع قائمة البيانات في بعض جداول InnoDB، مما يعني أننا لم نعد بحاجة إلى ملفات FRM، TRG، PAR! يظهر Information Schema الآن كعرض لجداول قائمة البيانات. يمكن في المبدأ عدم الحاجة إلى نوع MyISAM لجداول البيانات، ويمكن وضع جميع جداول النظام في InnoDB.
دور SQL
الصفة هي مجموعة من الصلاحيات. يمكن إنشاء أدوار، وتعيين وإزالة الأدوار من المستخدمين. هذا مفيد جدًا في إدارة الصلاحيات.
سيصبح نمط utf8mb4 الافتراضي، ودعم Unicode 9
سيتم تغيير النمط الافتراضي للغة من latin1 إلى utf8mb4، والترتيب الافتراضي collation من latin1_swedish_ci إلى utf8mb4_800_ci_ai.
الفهارس غير المرئية
يمكن إعداد بعض الفهارس كغير مرئية، بحيث لا يستخدمها مكتبة تحسين SQL، ولكنها ستظل تحافظ على التحديث في الخلفية. يمكن استعادة الرؤية في أي وقت عند الحاجة.
يمكن إجراء عمليات التشغيل على البيانات الثنائية
ليس من الممكن فقط إجراء عمليات التشغيل على BIGINT، بل من 8.0 وما بعدها يدعم أيضًا عمليات التشغيل على [VAR]BINARY/[TINYMEDIUMLONG]BLOB.
تحسين عمليات IPv6 وUUID
يمكن الآن إجراء عمليات التشغيل على INET6_ATON () وINET6_NTOA ()، لأن INET6_ATON () الآن يعود ببيانات نوع VARBINARY (16) (128 بت). تم تحسين عمليات UUID، وتم إدخال ثلاثة وظائف جديدة هي UUID_TO_BIN ()، BIN_TO_UUID () وIS_UUID () . لا توجد أنواع بيانات IPv6 وUUID خاصة في MySQL، بل يتم حفظها كنوع VARBINARY (16).
المتغيرات العالمية الدائمة
يمكن استخدام SET PERSIST لضبط المتغيرات العالمية الدائمة، حتى بعد إعادة التشغيل ستظل موجودة.
تحسين لخطة أداء قاعدة البيانات
على سبيل المثال، أضيفت أكثر من 100 فهرس إلى قاعدة البيانات المتعلقة بالأداء، مما يمكن من البحث بشكل أسرع.
إعادة هيكلة تحليل SQL
تحسين مستمر ومتدرج لتحليل SQL. تحليل القديم محدود بشكل كبير بسبب تعقيد جملته وأسلوب التحليل من الأعلى إلى الأسفل، مما يجعل الصيانة والتحسين صعبين.
نموذج التكلفة
يمكن الآن لسحابة InnoDB تقييم عدد الجداول والفهرسات في سحابة الذاكرة الرئيسية، مما يسمح لمكتبة التحسين أن يعرف ما إذا كان يمكن تخزين البيانات في الذاكرة أم لا يجب تخزينها على القرص.
الرسوم البيانية التوزيعية Histograms
من خلال استخدام الرسوم البيانية التوزيعية، يمكن للمستخدم أو مدير قاعدة البيانات إجراء إحصاءات التوزيع للبيانات، مما يمكن استخدامه في تحسين استعلامات البحث لتحديد خطة البحث المثلى.
تحسين أداء الفحص
تحسين أداء استعلامات النطاق InnoDB، مما يمكن تحسين أداء الاستعلامات الكاملة والاستعلامات النطاقية بنسبة 5-20%.
إعادة هيكلة BLOB
إعادة هيكلة BLOB تسريع عمليات القراءة/تحديث المقطع، مما يمكن تسريع عمليات بيانات JSON.
التخزين المؤقت للقيم التلقائية
InnoDB سيحافظ على أقصى قيمة التسلسل التلقائي في ملف السجلات redo. هذا التحسين يصلح أيضًا ثغرة قديمة برقم 199.
الجداول المؤقتة
إلغاء دعم التخزين المؤقت للجداول، وتخزين بيانات الجداول المؤقتة في ذاكرة الوصول العشوائي.
تحسينات أخرى مهمة وتفاصيل أكثر، يرجى الرجوع إلى MySQL 8.0.0 إصدار الإعلانات[1]و[2] .
تنزيل
ما زالت إصدار 8.0.0 إصدار تطويري، إذا كنت ترغب في تجربة وتحليل الميزات الأحدث، يمكنك dev.mysql.com[3] يمكنك تنزيل حزم التثبيت لكل منصة. ولكن، يتزايد حجم حزمة MySQL، حيث يصل الحزمة الثنائية على منصة Linux بعد التعبئة إلى حوالي 1 جيجابايت. إذا كنت تستخدمها في بيئة المنتج، قبل أن تدخل إصدار 8.0 في إصدار المستقر، يرجى الاستمرار في استخدام سلسلة 5.7، وإصدار الأحدث هو إصدار 5.7.15 GA - هذا يبلغ فقط أكثر من 600 ميجا بايت.
أحدث الشيفرة المصدرية موجودة فيGitHub على سبيل المثال، يمكن للذين يهتمون بالذهاب والنظر، حيث يوجد الكثير من المساهمات من الصينيين.
[1]: http://dev.mysql.com/doc/relnotes/mysql/8.0/en/
[2]: http://mysqlserverteam.com/the-mysql-8-0-0-milestone-release-is-available/
[3]: http://dev.mysql.com/downloads/mysql/