Fondo Servidores

Portal de Ayuda

Optimizar tablas de MySQL para liberar espacio

Escrito en

Estás en Inicio > Hosting > Bases de Datos > Optimizar tablas de MySQL para liberar espacio

Optimizar tablas de MySQL para liberar espacio

Algunas tablas de tu base datos MySQL o MariaDB de tipo MyISAM mediante el gestor phpMyAdmin, pueden mostrar un espacio ocupado que no se corresponde con el volumen de los datos almacenados. Para ello debemos optimizar las tablas de MySQL.

Principalmente es más notable encontrar esta incidencia cuando se elimina gran parte del contenido de la tabla. El funcionamiento por defecto de la base de datos es reservar ese espacio eliminado para futuras inserciones de datos. Sin embargo, lo habitual suele ser que estemos liberando espacio para usarlo en otros contenidos.

Función optimizar tabla en phpMyAdmin

La manera más rápida de liberar ese espacio reservado es usar la herramienta para optimizar tablas de phpMyAdmin, para ello accede de a tu base de datos desde el Panel de Control de hosting.

Una vez conectado a phpMyAdmin selecciona tu base de datos en la parte superior izquierda y verás el listado de tablas que componen tu base de datos, a continuación, selecciona la tabla que desees y en el desplegable que encontrarás en la parte inferior selecciona Optimizar la tabla.

Optimizar tabla

Optimizar tablas de forma automática mediante PHP

En el caso de que no desees estar pendiente de sí tus tablas deben liberar espacio que no estén utilizando, puedes emplear este código PHP y ejecutarlo mediante una tarea cron.

Recuerda ajustar los parámetros ServidorDB, UsuarioDB, ContraseñaDB y NombreDB del código por los datos de conexión a tu base de datos.

<?php
// Conexión a la base de datos
$con = new mysqli("ServidorDB","UsuarioDB","ContraseñaDB");
// Seleccionamos la base de datos
mysqli_select_db($con,"NombreDB");
// Obtenemos listado de tablas
$alltables = mysqli_query($con,"SHOW TABLES;");

// Guardamos la salida
$output = array();

while($table = mysqli_fetch_assoc($alltables)){
foreach($table as $db => $tablename){
$sql = 'OPTIMIZE TABLE '.$tablename.';';
$response = mysqli_query($con,$sql) or die(mysql_error());
$output = mysqli_fetch_assoc($response);
};
};
// Muestra la salida
print_r($output);
?>

No es necesario ejecutarlo siempre que hagas cambios en las tablas. Con ejecutarlo una vez al día, o una vez a la semana, sería suficiente en la mayoría de los casos.

Este código nos generará una salida con el resultado de ejecución del comando optimize por cada una de las tablas.

Salida optimize

Vídeos relacionados

Webinar | Cómo escoger un hosting para tu proyecto web

Webinar | Cómo escoger un hosting para tu proyecto web

Tanto si vendes productos o servicios como si tienes un blog o un sitio de noticias, elegir un buen hosting para tu web es …

Webinar | Introducción a la Optimización en WordPress (WPO)

Webinar | Introducción a la Optimización en WordPress (WPO)

Mantener tu web en WordPress rápida y segura ha de ser una de tus prioridades online. Aquí te explicamos algunas de las …

Tutoriales de Ayuda. Panel Dinahosting | ¿Cómo sé si un correo se ha enviado correctamente?

Tutoriales de Ayuda. Panel Dinahosting | ¿Cómo sé si un correo se ha enviado correctamente?

Comprueba si un envío de correo se ha efectuado correctamente desde tu Panel de Control de dinahosting, accediendo al menú …

Skip to content