Generalidades
Este artículo describe cómo optimizar tu base de datos a través de phpMyAdmin o SSH, lo que ayuda a mejorar la eficiencia de tu sitio web.
Optimizar a través de phpMyAdmin
Los siguientes pasos utilizan phpMyAdmin para optimizar y reparar las tablas en tu base de datos.
Iniciar sesión en tu base de datos
Revisa este artículo para obtener instrucciones sobre cómo iniciar sesión en tu base de datos a través de phpMyAdmin.
Revisar el tamaño de la base de datos
Antes de optimizar tu base de datos, debes revisar el tamaño actual. En el menú de la izquierda, da clic en el nombre de la base de datos.
A la derecha de la fila inferior, veráS el tamaño completo de la base de datos.
Optimizar o reparar tablas
Tienes la opción de optimizar o reparar las tablas de la base de datos. Estas son similares, pero se utilizan en circunstancias diferentes:
- Optimizar Tablas - Reorganiza el almacenamiento físico de los datos de las tablas y los índices asociados. Esta función mejora el acceso a las tablas al reducir el espacio de almacenamiento.
- Reparar Tabla - Repara una tabla posiblemente dañada. Se ejecuta si aparecen errores en la base de datos.
Para optimizar o reparar:
- En el menú de la izquierda, selecciona tu base de datos para ver todas las tablas.
- A la derecha, ves la columna Gastos generales.
- Si ves algún valor numérico, esas tablas se pueden optimizar. También puedes hacer clic en el enlace Verificar todo en la parte inferior izquierda, que selecciona todas las tablas.
- En la parte inferior de la lista de tablas, da clic en el menú desplegable Con seleccionados.
- En el menú desplegable, selecciona la opción Optimizar tabla o Reparar.
La optimización puede tardar un tiempo en completarse dependiendo del tamaño de la base de datos. Una vez que se completa, la página muestra la consulta que se ejecutó junto con un mensaje de éxito.
Puedes ignorar con seguridad el mensaje “La tabla no admite la optimización, en su lugar se realiza la recreación + análisis” ya que es solo informativo.
Optimizar a través de SSH
Lo siguiente utiliza SSH para optimizar o reparar tablas en tu base de datos. Esto resulta útil en bases de datos más grandes si nota que phpMyAdmin agota el tiempo de espera.
Revisar el tamalo de la base de datos
Conéctate a una base de datos a través de SSH y ejecuta la siguiente consulta para ver el tamaño de la base de datos en MB (no reemplaces ningún texto ni agregue saltos de línea):
SELECT table_schema "database", sum(data_length + index_length)/1024/1024 "size in MB" FROM information_schema.TABLES GROUP BY table_schema;
Optimizar tablass
Inicia sesión en tu servidor y corre el comando mysqlcheck para verificar, reparar y optimizar las tablas. Asegúrate de reemplazar las variables en el comando con tus credenciales de base de datos.
[server]$ mysqlcheck -h HOSTNAME -u USERNAME -p -o DATABASE
Es posible que veas la siguiente nota en la salida del comando:
Table does not support optimize, doing recreate + analyze insteadEste mensaje aparece cuando el motor de almacenamiento InnoDB de MySQL realiza un conjunto diferente de operaciones para optimizar la tabla y se puede ignorar de forma segura.
Ver la información de los registros
-
Puedes exportar los datos de registro a un archivo agregando lo siguiente al final del comando:
>> results.txt
Luedo usa el comando cat para leer el archivo:
cat results.txt
Usar un cron job para optimizar
-
Otra opción es crear un cron job para optimizar usando el comando mysqlcheck.
- Crea el archivo y llámalo algo como optimize-db.sh en el directorio principal de tu usuario.
- Agrégale este código (usando las credenciales de tu base de datos).
#!/bin/sh /usr/bin/mysqlcheck -o -v -u USERNAME -pPASSWORD -h MYSQL.EXAMPLE.COM DATABASENAME;
- Crea un cron job para correr este archivo. El comando de cron se puede ver de la siguiente manera:
/bin/sh /home/username/optimize-db.sh
Una buena práctica es ejecutar esto según un cronograma mensual.
Reparar una tabla
Si ves errores en la base de datos, corre este comando para reparar una tabla dañada en lugar de optimizarla.
[server]$ mysql -u USERNAME -pPASSWORD -h HOSTNAME DATABASENAME -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "repair table " $1 ";"}' | mysql -u USERNAME -pPASSWORD -h HOSTNAME DATABASENAME