Cómo convertir tablas InnoDB a Barracuda

Cómo convertir tablas InnoDB a Barracuda
4.3
(6)

Si estás empezando con tu web, sé que hablar de hacer cambios en la base de datos puede parecer de todo menos fácil, pero hay veces que son necesarios para mejorar el rendimiento de nuestra aplicación. ¿Un caso muy habitual? Convertir tablas InnoDB a Barracuda. Es un cambio bastante sencillo y que te permitirá optimizar y mejorar el rendimiento web, sobre todo si se trata de un sitio muy grande.

Si trabajas con Moodle, habrás visto en más de una ocasión que la propia aplicación te sugiere realizar un cambio en el formato de las tablas de la base de datos, de Antelope a Barracuda. Realmente es una modificación bastante sencilla, pero que a veces evitamos hacer por no tener información suficiente o miedo a que algo salga mal.

Así que hoy vamos a ponerle remedio a esto. A continuación te explico qué son las tablas InnoDB, por qué es recomendable hacer el cambio de Antelope a Barracuda y cómo realizar este proceso manualmente y automáticamente, ejecutando un script.

¿Nos ponemos con ello?

¿Qué son las tablas InnoDB?

InnoDB es un mecanismo de almacenamiento de datos (storage-engine) transaccional y con capacidades de confirmación (commit), cancelación (rollback) y recuperación de fallos. Además tiene soporte de claves foráneas, esto quiere decir que InnoDB permite relacionar tablas de forma dentro de la base de datos, eliminando inconsistencias de forma automática.

Las tablas InnoDB fueron diseñadas para obtener máximo rendimiento en aplicaciones que mueven un gran volumen de datos. De hecho, es el tipo de tablas que utilizan algunos gestores de contenido como Joomla, PrestaShop o Moodle.

Formatos de las tablas InnoDB

El formato que utilizan las tablas determinan cómo se almacenan los datos, por tanto, influyen en el rendimiento de las consultas u operaciones que ejecutemos, y por tanto, de la página web o la aplicación.

En las tablas InnoDB podemos diferenciar estos dos formatos:

  • Antelope: es el formato original de las tablas InnoDB y admite formatos de fila COMPACT y REDUNDANT.
  • Barracuda: es el formato más nuevo. Además de admitir los formatos de fila de Antelope (COMPACT y REDUNDANT), también soporta COMPRESSED y DYNAMIC, es decir, formatos de fila comprimidas y un almacenamiento más eficiente.

Aquí te dejo una tabla resumen con las principales características de cada formato:

Características del formato de tablas InnoDB: Antelope y Barracuda

Debido a la mejora que implica utilizar el formato Barracuda en las tablas InnoDB, muchas aplicaciones recomiendan su uso. Por ejemplo, en Moodle es casi imprescindible realizar el cambio de Antelope a Barracuda si tienes una web que está creciendo o en la que tienes muchos plugins.

Pero, ¿por qué es tan importante hacer el cambio de Antelope a Barracuda en Moodle?

Las últimas versiones de Moodle sugieren realizar el cambio de formato de las tablas Antelope a Barracuda. La razón principal por la que recomiendan hacer esta modificación es que las tablas con formato Antelope no soportan más de 10 columnas de texto y existen plugins que requieren más columnas de texto, pudiendo generar errores que afectan al funcionamiento normal de tu página web.

¿Trabajas con Moodle? Entonces es probable que hayas visto en tu aplicación un aviso que dice lo siguiente:

Your database has tables using Antelope as the file format. You are recommended to convert the tables to the Barracuda file format. See the documentation Administration via command line for details of a tool for converting InnoDB tables to Barracuda.

Otra de las razones de peso para realizar el cambio de formato y convertir las tablas Antelope a Barracuda es el rendimiento y optimización web.

Barracuda es el formato de archivo más nuevo y la principal ventaja que porta respecto a Antelope es la compresión de datos. Barracuda admite todos los formatos de fila (incluidos los formatos comprimidos y dinámicos), ayudando a reducir los requerimientos de CPU y disco del servidor, obteniendo así unos mejores resultados.

Cómo convertir tablas InnoDB a Barracuda

Como hemos visto, una de las aplicaciones más utilizadas y en las que se recomienda convertir tablas InnoDB a Barracuda es Moodle. No obstante, este cambio se hace exactamente de la misma forma en Moodle o cualquier otra aplicación con la que estás trabajando.

¿Vemos cómo se hace?

1. Realiza una copia de seguridad

Es algo que recomiendo siempre. Si vas a hacer cualquier cambio en tu web, por pequeño que sea, asegúrate de tener una copia de seguridad de tu cuenta.

Recuerda que en LucusHost realizamos dos copias de seguridad al día en todos los planes de hosting. Así, si algo sale mal, puedes volver atrás en cuestión de minutos. Eso sí, si has hecho cambios en las últimas horas que quieres mantener, te recomiendo que realices una nueva copia para no perder tus últimas horas de trabajo.

2. Comprueba qué formato de tablas estás utilizando

Para evitar realizar cambios innecesarios, lo mejor es que primero compruebes qué formato de tablas estás utilizando. Puede ser que, si estás alojado en un servidor con las versiones más recientes, tu aplicación ya esté trabajando con el formato Barracuda.

La comprobación es muy simple, simplemente tienes que seguir estos pasos:

  1. Accede al panel de control de tu alojamiento. Si necesitas ayuda o recuerdas los datos de acceso, este post puede ayudarte: Cómo entrar a cPanel.Pantalla de acceso a cPanel
  2. Ahora ve a la sección «Base de datos», selecciona la opción «phpMyAdmin».phpMyAdmin cPanel
  3. En la pestaña SQL ejecuta la siguiente consulta, incluyendo el nombre de tu base de datos.
    SHOW TABLE STATUS FROM NOMBRE_BASE_DE_DATOS WHERE engine='InnoDB'

Con esta consulta verás un montón de información relacionada con tu base de datos. Para saber qué formato de tablas utiliza, fíjate en los valores de la columna «Row_format».

Comprobar el formato de tablas de una base de datos

Los valores COMPRESSED y DYNAMIC indican que ya estás utilizando Barracuda, por lo que no necesitarás hacer ninguna modificación. En LucusHost es el formato que utilizamos por defecto, por lo que no tendrás que preocuparte de hacer este cambio.

En cambio, si los resultados arrojan el formato COMPACT o  REDUNDANT, significa que trabajas con el formato Antelope. De ser así, pasamos al siguiente punto para hacer la conversión de InnoDB a Barracuda.

3. Convierte las tablas InnoDB a Barracuda

Para cambiar el formato de Antelope a Barracuda tienes dos opciones. Realizar el cambio de forma manual, tabla a tabla, o ejecutar un script que realice el cambio de forma masiva.

3.1. Cómo convertir tablas InnoDB a Barracuda de forma manual

Hacer la conversión a Barracuda de forma manual es muy sencillo, aunque algo laborioso, sobre todo, si tienes muchas filas en la base de datos:

  1. Vuelve a «phpMyAdmin» y selecciona la base de datos de tu aplicación Moodle.Seleccionar una base de datos en phpMyAdmin
  2. Ahora selecciona la tabla de la base de datos y, en la columna «Acción», selecciona la opción «Estructura». A continuación se abrirá una nueva pestaña, ve al menú superior y selecciona «Operaciones».Operar sobre una tabla de la base de datos
  3. En la pestaña «Opciones de tabla», ve a la «Row format» y, en el desplegable, selecciona la opción «Compressed». Por último, pulsa en «Continuar» para que se guarden los cambios.Convertir tabla InnoDB a Barracuda

Importante: Si no tienes la opción «Compressed» o «Dynamic» es probable que tu proveedor de hosting o el servidor en el que estás alojado no soporte el formato de tablas Barracuda. No obstante, te recomiendo que contactes directamente con ellos para puedan ofrecerte alguna solución.

También puedes realizar esta misma acción ejecutando un comando para cada una de las tablas de tu base de datos. Para ello, accede desde «phpMyadmin» a tu base de datos y, en la pestaña «SQL» lanza la siguiente petición:

ALTER TABLE NOMBRE_TABLA ROW_FORMAT=COMPRESSED

Recuerda sustituir NOMBRE_TABLA por el nombre de la tabla de tu base de datos y darle a «Continuar» para guardar los cambios.

3.2. Cómo convertir tablas InnoDB a Barracuda mediante un script.

Otra forma de realizar el cambio en Moodle para convertir una tabla con formato Antelope en Barracuda es ejecutando un script. Realmente es mucho más cómodo que hacer el cambio tabla por tabla, sobre todo cuando tienes una base de datos muy grande.

A continuación te dejo el script que hemos creado y que es compatible con las versiones de PHP más recientes. Puedes subirlo a tu hosting desde el «Administrador de archivos de cPanel» y ejecutarlo escribiendo la URL en tu navegador web. Por ejemplo, https://www.tudominio.es/script.php

Importante: Recuerda sustituir los valores servidor, usario, contraseña y nombre de la base de datos por los que corresponda en tu caso.

Conclusión

Para mejorar el rendimiento y la optimización web, muchas aplicaciones recomiendan convertir las tablas InnoDB a Barracuda. Especialmente en Moodle, donde algunos plugins ya no son compatibles con las tablas Antelope y es necesario realizar este cambio sí o sí.

Tienes dos formas de realizar este cambio; manualmente, seleccionando Barracuda para cada tabla de tu base de datos o ejecutando un script. ¡Tú elige la que te sea más cómoda!

¿Alguna duda? ¿Has tenido problemas a la hora de realizar la conversión de InnoDB a Barracuda? Déjame un comentario e intento echarte una mano 🙂 .

¡Puntúa este artículo!

Total votos: 6. Promedio: 4.3

Tags:
No hay comentarios

Escribe un comentario