En la nueva serie sobre actualizar desde MySQL 5.5 a MariaDB, no podría dejar de escribir sobre MySQL 8, y las novedades que supone. Debo confesar de que no he probado la versión 5.7 (la versión 5.6, sí). En el blog también tenéis lo mismo, pero 5 años atrás:
Las novedades de MySQL 8 son múltiples, aunque puedes leer un artículo muy completo aquí. En mi opinión, y entre las más importantes, destacan:
Soporte para UTF8
Este cambio es importante, porque este juego de caracteres es el que soporta UTF8 en toda su extensión, y es el nuevo juego por defecto. Personalmente, me ha ayudado también leer este artículo sobre el problema que había y el motivo del cambio. Si aún estás trabajando con versiones anteriores, te recomiendo que vayas realizando las modificaciones oportunas, siguiendo los distintos pasos que se comenta en el artículo.
Para su implementación desde ya, sea la versión con la que estés trabajando, lo primero que debes conocer es la ruta donde tienes tu fichero de configuración my.ini, y deberías cambiar los siguientes parámetros:
default-character-set=utf8mb4 tanto en [mysql] como en [mysqld]
Si eres de España, te interesa tener esta página a mano, para disponer de la mejor opción para el soporte completo de español. Así, lo más recomendable para es español es utf8mb4_es_800_ai_ci.
Y es que, una de las principales novedades de MySQL 8 es el soporte por defecto para Unicode 9, abandonando definitivamente latin1 (que era antes la opción por defecto).
Funciones de windows
Las window functions son otras de las importantes novedades de MySQL 8, que se utilizan para la realización de cálculos en el análisis de datos, y que son de gran necesidad, y abordar una necesidad importante en comparación con la cláusula GROUP BY de que podemos devolver los datos subyacentes en la misma consulta.
Esto tengo que investigarlo más, pero pinta bien!
Soporte nativo extendido para JSON
El formato JSON ya empezó a ser soportado en MySQL 5.7, y ahora se potencia y se mejora esta característica. Para el que desarrolla APIs, esto es una muy buena noticia, porque JSON es casi lo más utilizado para conectar las bases de datos con los front-ends. Es otro aspecto que tengo que investigar también, y que seguro que acelerará mi trabajo cuando lo conozca con más detalle.
Esta característica está relacionada con las bases de datos NoSQL (en este blog, ya hablamos hace muchos años de MongoDB como base de datos NoSQL, pero al no haberla utilizado profesionalmente, no he avanzado más en ella), y es que disponer en una misma base de datos ambas características es un interesante novedad.
Sin duda, esta versión pone a disposición de los usuarios varias funciones especializadas en trabajar con JSON tales como JSON_PRETTY, JSON_TABLE, JSON_ARRAYAGG o JSON_OBJECTAGG entre otras. Y además, se ha mejorado el rendimiento respecto a 5.7, cosa que es de agradecer.
Aspectos GIS
MySQL 8 da soporte a funcionalidades GIS, que incluye metadatos de sistema de referencia, tipos espaciales, índices espaciales, y funciones espaciales. Sin duda, toda una declaración de intenciones para los que trabajamos con posicionamiento geográfico.
Y más ….
Pero estas no son las únicas novedades, aunque quizás sean las de más calado. Enumerarlas todas no tiene sentido, porque puedes verlo en los changelogs, y además, si realizas una actualización del servidor, los warning o errores seguro que se permiten mejorar tu conocimiento sobre lo que se ha actualizado.
En la siguiente entrada, te cuento cómo disponer de MySQL 8 portable, o instalando desde archivos.
Y con esto, te espero en la siguiente entrada.