Oracle ha lanzado una nueva rama de MySQL 9.1.0. Las compilaciones de MySQL Community Server 9.1.0 están disponibles para todas las distribuciones principales. Linux, FreeBSD, macOS и WindowsComo parte del nuevo modelo de lanzamiento introducido el año pasado, MySQL 9.1 se asigna a las ramas de "Innovación", que también incluirán la próxima versión principal, MySQL 9.2. Las ramas de Innovación se recomiendan para quienes desean acceso anticipado a nuevas funcionalidades. Se publican cada tres meses y solo se les brinda soporte hasta la siguiente versión principal (por ejemplo, después del lanzamiento de la rama 9.1, finaliza el soporte para la rama 9.0). Se planea una versión LTS para el próximo verano, recomendada para implementaciones que requieren previsibilidad y estabilidad a largo plazo. Tras la rama LTS, se lanzará una nueva rama de Innovación: MySQL 10.0.
Cambios importantes en MySQL 9.1:
- Se agregó soporte para la expresión "SI NO EXISTE" a la operación "CREAR VISTA", que le permite organizar la creación de una vista solo si una vista con el nombre especificado aún no existe y evitar devolver un error si la vista ya ha sido creado.
- Se detuvo la carga de activadores al realizar operaciones de solo lectura. Anteriormente, los desencadenadores se cargaban cada vez que se accedía a una tabla, lo que desperdiciaba memoria y creaba una carga de CPU en situaciones en las que no se utilizaban desencadenadores (por ejemplo, al ejecutar consultas SELECT). En MySQL 9.1, el procesamiento y la carga de disparadores se divide en dos etapas: leer metadatos sobre el disparador y analizar + ejecutar el disparador. Los datos obtenidos en la primera etapa se almacenan una vez y luego se comparten entre diferentes instancias de activación. El activador se analiza y ejecuta solo para expresiones que cambian los datos. Además, para reducir el consumo de memoria, en lugar de asignar búfer estáticamente para el manejo de errores en los activadores, cambiamos a la asignación de memoria dinámica según fuera necesario.
- El resultado de la operación EXPLAIN se ha ampliado para mostrar información sobre el uso de lecturas de rango múltiple y el uso de una estrategia de semiunión, en la que las operaciones JOIN procesan filas de una sola tabla.
- La ejecución atómica de las operaciones “CREATE DATABASE” y “DROP DATABASE” se proporciona para proteger contra fallas en caso de fallas o errores en el nivel del sistema de archivos durante la ejecución de estas operaciones. Por ejemplo, anteriormente, cuando fallaba “CREATE DATABASE”, se podía haber creado una estructura de almacenamiento de base de datos incompleta que no funcionaba, lo que requería intervención manual para su limpieza.
- Los procedimientos almacenados escritos en JavaScript brindan soporte para el tipo VECTOR. Ahora se pueden pasar datos con el tipo especificado en los parámetros de entrada y retorno.
- Se agregó la capacidad de autenticarse al conectarse a un DBMS utilizando el protocolo OpenID Connect.
- Se han corregido veintisiete vulnerabilidades, la más grave de las cuales (CVE-2024-5535) ha recibido un nivel de gravedad crítico (9.1 sobre 10). Esta vulnerabilidad puede explotarse remotamente sin autenticación. El problema se debe a una lectura fuera de los límites en la biblioteca OpenSSL y provoca un bloqueo o una fuga de memoria en la respuesta tras la conexión. servidor con la indicación de parámetros de protocolo incorrectos.
Fuente: opennet.ru
