אורקל יצרה סניף חדש של 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:
- נוספה תמיכה בביטוי "IF NOT EXISTS" לפעולת "CREATE VIEW", המאפשרת לארגן יצירת תצוגה רק אם תצוגה עם השם שצוין לא קיימת כבר ולהימנע מהחזרת שגיאה אם התצוגה כבר נוצר.
- הפסקת טעינת טריגרים בעת ביצוע פעולות לקריאה בלבד. בעבר, טריגרים נטענו בכל פעם שניגשה לטבלה, בזבוז זיכרון ויצר עומס CPU במצבים שבהם לא נעשה שימוש בטריגרים (לדוגמה, בעת ביצוע שאילתות SELECT). ב-MySQL 9.1, עיבוד וטעינת טריגרים מתחלקים לשני שלבים: קריאת מטא נתונים על הטריגר וניתוח + ביצוע הטריגר. הנתונים שהתקבלו בשלב הראשון מאוחסנים פעם אחת ואז משותפים בין מקרי טריגר שונים. הטריגר מנותח ומבוצע רק עבור ביטויים המשנים נתונים. בנוסף, כדי להפחית את צריכת הזיכרון, במקום להקצות באופן סטטי מאגרים לטיפול בשגיאות בטריגרים, עברנו להקצאת זיכרון דינמית לפי הצורך.
- הפלט של פעולת EXPLAIN הורחב כדי להציג מידע על השימוש בקריאה מרובה טווחים ושימוש באסטרטגיית semijoin, שבה פעולות JOIN מעבדות שורות מטבלה אחת בלבד.
- ביצוע אטומי של פעולות "CREATE DATABASE" ו-"DROP DATABASE" מסופק כדי להגן מפני כשלים במקרה של קריסה או שגיאות ברמת מערכת הקבצים במהלך ביצוע פעולות אלו. לדוגמה, בעבר, כאשר "CREATE DATABASE" קרס, יכול היה להיווצר מבנה אחסון לא שלם של מסד נתונים, מה שדרש התערבות ידנית כדי לנקות.
- נהלים מאוחסנים שנכתבו ב-JavaScript מספקים תמיכה לסוג VECTOR. כעת ניתן להעביר נתונים עם הסוג שצוין בפרמטרי קלט והחזרה.
- נוספה יכולת אימות בעת חיבור ל-DBMS באמצעות פרוטוקול OpenID Connect.
- עשרים ושבע פגיעויות תוקנו, כאשר החמורה שבהן (CVE-2024-5535) קיבלה רמת חומרה קריטית (9.1 מתוך 10). ניתן לנצל את הפגיעות מרחוק ללא אימות. הבעיה נגרמת על ידי קריאה מחוץ לתחום בספריית OpenSSL ומובילה לקריסה או דליפת זיכרון בתגובה לאחר התחברות אל שרת עם ציון פרמטרים שגויים של פרוטוקול.
מקור: OpenNet.ru
