Base de Datos

MySQL – MariaDB Ya no uses UTF8 mejor usa utf8mb4

MySQL UTF8 es un formato estándar para almacenar caracteres Unicode. UTF8 utiliza una secuencia única de 1, 2, 3 bytes para codificar cada carácter en el juego de caracteres Unicode.

MySQL utf8mb4 significa que usa un máximo de 4 bytes por carácter, soportando carácteres suplementarios.

  • Con la llegada de MySQL 8 se está mejorando el rendimiento de utf8mb4 y será establecido como conjunto de caracteres predeterminado.

Para entender más sobre el tema, nos vamos a situar en un problema real donde necesitamos instalar una aplicación. La aplicación que estamos instalando es Moodle, que es una herramienta de Gestión de Aprendizaje Online.

Cuando el programa procede a pedirnos los requerimientos de nuestra base de datos, se nos avisa de que es obligatorio un juego de caracteres utf8md4. La razón es porqué Moodle usa símbolos Unicode para guardar emojis y estos exceden el espacio máximo por carácter establecido por la codificación Utf8.

Cada emoji se compone de 4 bytes (xF0x9Fx98x89) y estos exceden el tamaño máximo por carácter de 3 bytes de la codificación Utf8.

Conclusión: Todos los usuarios de MySQL y MariaDB que están utilizando actualmente “utf8” deberían utilizar “utf8mb4”. Nadie debería usar “utf8”.