Actualizando a MySQL 8 en todos los servidores de SiteGround

Hace unas semanas iniciamos la actualización a MySQL 8 en nuestros servidores. Esto fue el resultado de un largo proceso de monitorización y pruebas de compatibilidad de esta versión con los sitios web de nuestros clientes, hasta que concluimos que MySQL 8 es altamente compatible con las principales aplicaciones alojadas en nuestra plataforma y es seguro realizar el cambio.

MySQL es una pieza de software fundamental en nuestro stack, utilizada por la gran mayoría de nuestros clientes para potenciar sus bases de datos. Su funcionamiento óptimo tiene un gran impacto en el rendimiento general y la disponibilidad del sitio web. Es por eso que el equipo de SiteGround dedica muchos recursos a optimizar y personalizar nuestro MySQL, siempre con el objetivo de obtener un rendimiento cada vez mejor. Para lograr este objetivo a lo largo de los años, hemos introducido varias personalizaciones, como nuestra configuración única de MySQL, y planificamos y probamos cuidadosamente cualquier nueva versión de MySQL, asegurándonos de que los beneficios superen los daños potenciales que dicha actualización podría traer. Ahora estamos seguros de que la versión 8 de MySQL es compatible en gran medida y nuestros clientes pueden aprovechar de forma segura el rendimiento mejorado de la base de datos, la escalabilidad y las optimizaciones de codificación que trae consigo.

¿Cuál es el plan para la actualización de MySQL?

Primero, nos gustaría anunciar que todos los nuevos sitios web creados en nuestros servidores compartidos y todas las cuentas Cloud recién creadas ahora vienen con MySQL 8 por defecto.

En segundo lugar, el proceso de migración a MySQL 8 de los sitios compartidos existentes ya está en progreso. Una vez que nuestros servidores compartidos estén actualizados, comenzaremos a actualizar también las instancias de Cloud. El proceso continuará en los próximos meses. De acuerdo con nuestro calendario, planeamos haber migrado todos nuestros clientes a MySQL 8 a finales de junio de este año.

Para que la transición resulte lo más fácil posible, te enviamos correos electrónicos con al menos una semana de antelación para informarte en qué fechas exactamente vamos a actualizar tu sitio web a MySQL 8. El procedimiento de actualización se realiza a altas horas de la noche, cuando el tráfico al servidor es mínimo. Puede ocurrir una breve interrupción del servicio mientras se actualiza el software. No se requiere ninguna acción de tu parte en relación con la migración.

¿Cuáles son las novedades de MySQL 8?

MySQL 8 introduce una variedad de nuevas características y mejoras de antiguas funcionalidades, todas con el objetivo de mejorar el rendimiento general y la escalabilidad, así como la experiencia del desarrollador. A continuación detallamos las más notables.

Mejor rendimiento y escalabilidad

MySQL 8 ofrece un mejor rendimiento y escalabilidad. Las pruebas de benchmark muestran mejores resultados en términos de rendimiento y escalabilidad para MySQL 8 en comparación con MySQL 5.7. Las pruebas muestran que MySQL 8 maneja mucho mejor las operaciones de lectura/escritura y el número de transacciones procesadas es mucho mayor.

Además, las pruebas muestran que MySQL 8 utiliza el hardware mucho mejor en comparación con la versión 5.7.

Estas son algunas de las mejoras que lo hacen posible:

  • Escalado de cargas de trabajo de lectura/escritura

MySQL 8 muestra un mejor rendimiento en lectura/escritura intensiva y se observa más de 2 veces mejor rendimiento en cargas altas comparado con MySQL 5.7.

  • Mejor rendimiento en cargas de alta contención

El rendimiento para cargas de trabajo de alta contención se ha mejorado significativamente en MySQL 8. Una carga de trabajo de alta contención ocurre cuando varias transacciones están esperando un bloqueo en la misma fila en una tabla, causando colas de transacciones en espera.

En MySQL 8, tales ráfagas se manejan mucho mejor en términos de transacciones por segundo y latencia. Eso lleva a una mejor utilización del hardware (eficiencia), ya que el sistema necesita menos recursos adicionales y, por lo tanto, puede funcionar con una carga media más alta.

  • Particionamiento nativo/InnoDB Pool mejorado

MySQL 8 admite particionado nativo para el motor InnoDB. Eso te permite dividir tablas grandes en particiones más pequeñas. Esto puede mejorar el rendimiento de las consultas y reducir los requisitos de almacenamiento, especialmente para tablas grandes. La nueva versión de MySQL también introduce mejoras en el pool InnoDB. El pool es responsable de almacenar en caché los datos y reducir las operaciones de E/S.

Expresiones de tabla comunes (CTE)

Con la última versión de MySQL 8, ahora también puedes aprovechar las expresiones de tabla comunes. Una expresión de tabla común es un conjunto de resultados que existe solo temporalmente mientras se ejecuta una declaración que luego se puede usar en la misma declaración.

Estas CTE permiten crear consultas más complejas utilizando bloques más sencillos, basados en tablas temporales. En otras palabras, las expresiones de tabla comunes permiten utilizar conjuntos de resultados temporales con nombre.

Cambio del carácter por defecto

El carácter predeterminado en MySQL 8 se cambia a utf8mb4.

Una de las diferencias más notables entre utf8, utf8mb3 y utf8mb4 es el número máximo de bytes por carácter. Mientras que utf8 y utf8mb3 solo pueden almacenar caracteres en el plano BMP (Basic Multilingual Plane) de Unicode, utf8mb4 puede almacenar caracteres en el plano suplementario. utf8mb4 admite una amplia gama de caracteres, incluyendo emojis y otros caracteres especiales.

Índices invisibles

Otra nueva característica de MySQL 8 son los índices invisibles. En general, los índices son utilizados por el optimizador de consultas MySQL para mejorar la velocidad con la que se recuperan los datos, mientras que los índices invisibles son los que están ocultos para el optimizador de consultas MySQL y permiten probar la eliminación de un índice en el rendimiento de la consulta, sin hacer un cambio destructivo.

Por ejemplo, si estás trabajando con una tabla muy grande con unos pocos índices, y quieres optimizarla aún más eliminando ciertos índices y añadiendo otros nuevos. Imagina que sabes que necesitarás estos índices en el futuro. Eliminarlos en primer lugar puede ser peligroso, porque construirlos de nuevo requiere muchos recursos. Para evitar esto, ahora puedes simplemente utilizar índices invisibles: convierte algunos existentes en invisibles, prueba lo que necesites con los nuevos y, cuando los necesites, vuelve a hacerlos visibles.

¿Por qué es ahora el momento adecuado para migrar?

Como MySQL es una tecnología tan fundamental, las actualizaciones importantes ocurren rara vez y tardan mucho tiempo en ser adoptadas universalmente. MySQL 8 se lanzó por primera vez en 2018, pero la mayoría de sitios webs y sus aplicaciones subyacentes tardaron varios años en ser compatibles. Estuvimos supervisando constantemente el nivel de compatibilidad y hemos elegido el momento de actualización actual, ya que hemos visto que ahora el riesgo de causar un impacto negativo en un sitio web con la actualización ha disminuido en gran medida. Desde que comenzó la actualización hace unas semanas, ya hemos migrado cientos de miles de sitios a MySQL 8.

Daniel Kanchev

Director de Desarrollo de Producto

Daniel es el responsable de dar vida a los nuevos productos de SiteGround. Esto significa manejar todo tipo de tareas y comunicaciones, a través de múltiples equipos. Entusiasta de la tecnología, experiencia de usuario, seguridad y rendimiento, nunca te puedes aburrir teniéndolo a tu alrededor. También, en ocasiones es conferencista y adicto a los viajes.

Iniciar discusión

Artículos relacionados

Ha llegado el momento de practicar