Actualizar de MySQL 5.1 a MySQL 5.5

Categorias: Bases de Datos

El ciclo de vida de MySQL 5.1 terminó en 2013, siendo la última versión disponible la 5.1.72 que data del 11 de Septiembre de 2013 en el repositorio oficial de Oracle. Esto significa que no habrá nunca más correcciones de seguridad o problemas conocidos (o nuevos) en MySQL 5.1.

La versión de MySQL 5.5 corrige bugs y vulnerabilidades de seguridad. Uno de ellos, que hemos venido detectando, es el que provoca corrupción de datos en las tablas InnoDB. E incluso se ha llegado ha sacar una versión no oficial 5.1.73 que corrige errores relacionados con la optimización, privilegios y bloqueo en tablas InnoDB.

Además respecto a MySQL 5.1 la versión 5.5 incluye las siguientes mejoras en el rendimiento y escalabilidad:

– Se ha mejorado la base de datos MySQL y el motor de almacenamiento InnoDB que permiten un mejor aprovechamiento de las plataformas multi-cpu y multi-core.

– Se ha mejorado la usabilidad gracias a las mejoras aplicadas sobre los índices y el particionamiento de las tablas.

Esto posiblita junto a la creación de nuevas variables de configuración y el ajuste de otras ya existentes, que esta versión tenga hasta un +360% de ganancia en operaciones de lectura/escritura y hasta un +200% en operaciones de sólo lectura con respecto a la versión 5.1.

Hay una serie de incompatibilidades, que describimos a continuación, entre MySQL 5.1 y MySQL 5.5. Todas ellas no son un obstáculo para proceder al necesario cambio de versión. Recuerde que, como cliente de Hostinet, durante este proceso puede contar con el equipo técnico de Hostinet. Es, además, poco probable que estas incompatibilidades afecten a su web y además al finalizar el proceso de actualización Hostinet revisará y corregirá su base de datos para que pueda beneficiarse de las mejoras de la versión 5.5:

Operaciones matemáticas

MySQL ha incluido una nueva librería para la conversión de datos entre cadenas y números: dtoa. Todas las operaciones y funciones aplicadas sobre valores enteros, coma flotante o decimales devuelven un error de fuera de rango (ER_DATA_OUT_OF_RANGE) en vez de devolver un valor incorrecto o NULO.

Indices fulltext

El fichero de stopwords se carga y las búsquedas se realizan utilizando latin1 cuando character_set_server es ucs2, utf16 o utf32. Si alguna tabla ha sido creada bajo esta situación, debe ser reparada a través de la sentencia: REPAIR TABLE nombre_tabla QUICK;

Soporte Unicode

La implementación de Unicode se ha extendido para soportar más carácteres a través de utf16, utf32 y utf8mb4. Si estás pensando en actualizar de utf8 a utf8mb4, tendrás que ajustar el tamaño de los campos y los índices de acorde a lo expuesto aquí:

Cambios en sentencias SQL

– La clausula INTO dentro de una sentencia SELECT ya no se admite.
– No se permiten declaraciones de alias fuera de table_reference en sentencias DELETE que afecten a multiples tablas.
– La resolución de alias no requiere de calificación y la referencia a alias no debe ser calificada con el nombre de la base de datos.

Nuevas palabras reservadas

Se han añadido los siguientes términos reservados:
GENERAL, IGNORE_SERVER_IDS, MASTER_HEARTBEAT_PERIOD, MAXVALUE, RESIGNAL, SIGNAL, SLOW