Diferencias de tamaño de la base de datos InnoDB

Recientemente hemos visto algún caso de problemas de espacio en el plan de Hosting contratado. Por ejemplo en un caso concreto, el plan estaba excedido y el cliente no lograba localizar donde estaban estos megas «ocultos». Finalmente, informamos al cliente donde estaba el problema. Existían diferencias de tamaño de la base de datos InnoDB entre lo que indicaba el panel Plesk y lo que realmente ocupaba. Hoy queremos detallaros este caso concreto y el porqué ocurre esta diferencia de tamaño.

¿Que es InnoDB?

Una base de datos necesita de un motor (Engine) para gestionar la información de una cierta tabla. Los tipos de motor mas conocidos son InnoDB o bien MyISAM. Cada uno, posee ciertas ventajas e inconvenientes que no vamos a indicar aquí ya que no es el tema de este post.

Si quieres saber que tipo de motor estan usando las tablas de tu base de datos, tan solo has de acceder a tu phpMyAdmin, y comprobar la columna Tipo:

Motor de tabla InnoDB

¿Por qué existen esas diferencias de tamaño de la base de datos InnoDB entre lo que indica Plesk y el tamaño real?

Como hemos indicado en el punto anterior, InnoDB tiene una serie de características que lo diferencian de MyISAM. Uno de estos aspectos es que InnoDB además de la información que guarda en las tablas, almacena información adicional y esta es la causa de que la base de datos ocupe mucho más de lo que realmente figura en el panel de la base de datos.

Un ejemplo de esta diferencia de tamaño la vemos en las siguientes imágenes. En esta primera captura, vemos el tamaño que esta ocupando la información almacenada en las tablas de la base de datos:

Tamaño base de datos InnoDB

En esta segunda imagen, vemos en las estadísticas de uso de nuestro plan, que el espacio ocupado por la base de datos, es mayor que el que se nos indicaba en la sección anterior. Esto es porque al tamaño de la información almacenada en la base de datos, se le suma la información adicional que almacena InnoDB:

Estadísticas uso bases de datos

Cómo corregir el tamaño ocupado de mas en nuestra base de datos InnoDB

Primera opción: Optimizando las tablas desde phpMyAdmin

Esta opción consiste en optimizar las tablas de nuestra base de datos. Deberemos marcar las tabla que queramos revisar, y en el desplegable de la zona inferior, seleccionar la opción de Optimizar la tabla.

Optimizar tabla

Si bien es cierto que no eliminaremos mucha de la información adicional, si que podremos mejorar tanto el tamaño como el rendimiento de nuestras tablas.

Recomendamos encarecidamente realizar una copia de seguridad de la base de datos antes de hacer cualquier modificación.

Segunda opción: Exportar el contenido de nuestra base de datos como sql e importarlo de nuevo

Esta opción es la mas efectiva, aunque requerirá de ciertos conocimientos. Consiste en exportar el contenido de nuestra base de datos en formato sql, eliminar todo el contenido de la base de datos, e importarlo de nuevo desde el fichero que acabamos de obtener.

Como verás, este proceso conlleva cierto riesgo, sobretodo si no tienes suficientes conocimientos, pero garantiza que tu base de datos ocupará realmente el tamaño real, ya que habremos eliminado la información adicional.

Rate this post
Facebooktwitter