Cómo optimizar y reparar tablas de MySQL en bases de datos de WordPress y PrestaShop
¿Por qué es importante optimizar y reparar las tablas de MySQL?
Si tienes una tienda online con PrestaShop o un blog con WordPress, tu base de datos es el corazón de tu proyecto. Cada vez que un visitante entra en tu web, se realizan cientos de consultas a las tablas MySQL para mostrar contenido, productos, carritos de compra o comentarios.
Con el tiempo, estas tablas acumulan información basura, registros huérfanos y fragmentación. El resultado es que tu web se vuelve más lenta, da errores intermitentes o incluso muestra el temido "Error al conectar con la base de datos". Aprender a optimizar tablas mysql y a reparar base de datos mysql es una habilidad básica que te ahorrará muchos dolores de cabeza y mejorará la velocidad de tu sitio.
En esta guía extensa y muy práctica, te voy a explicar paso a paso cómo hacerlo, tanto desde el panel de control de tu hosting como usando comandos SQL. No necesitas ser un experto, solo seguir las instrucciones con calma.
¿Qué significa exactamente "optimizar" y "reparar" una tabla?
Antes de lanzarnos a ejecutar comandos, es fundamental que entiendas la diferencia entre estos dos procesos. Es más sencillo de lo que parece:
Optimizar tablas MySQL
Optimizar es como ordenar una habitación. Cuando borras entradas antiguas, comentarios spam o revisiones de productos, los huecos que quedan en la tabla no se rellenan automáticamente. La tabla se fragmenta y ocupa más espacio del necesario. Al optimizar, MySQL reorganiza los datos físicamente, libera espacio y reconstruye los índices. El resultado es una base de datos más ligera y consultas más rápidas.
Reparar base de datos MySQL
Reparar es como curar una herida. Si tu servidor se apagó de golpe, hubo un corte de luz o un plugin hizo algo raro, algunas tablas pueden quedar corruptas o marcadas como "dañadas". En ese caso, la web no funciona correctamente o da errores. Reparar intenta recuperar los datos y devolver la tabla a un estado funcional.
[INFO] Una regla de oro: primero intenta reparar si tienes errores, y después optimiza. Si la tabla está corrupta, optimizarla sin repararla podría empeorar las cosas.
Preparación previa: Haz una copia de seguridad (¡sí o sí!)
Este es el paso que más se salta la gente y luego lo lamenta. Antes de tocar nada en tu base de datos, debes hacer una copia de seguridad completa. Aunque los comandos de optimización y reparación son seguros, nunca sabes qué puede pasar con un servidor inestable.
Cómo hacer una copia de seguridad rápida
- Entra en el panel de control de tu hosting (cPanel, Plesk, Syspanel, etc.).
- Busca la sección de Bases de Datos MySQL.
- Localiza la opción de Exportar o Backup. En cPanel se llama "phpMyAdmin" y en Syspanel también tienes acceso directo.
- Selecciona tu base de datos y exporta todo en formato SQL. Descarga el archivo a tu ordenador.
[WARNING] Si usas Syspanel (el panel que antes se llamaba HestiaCP) y accedes por el puerto 2106, la opción de backup suele estar en "Bases de Datos" > "Gestionar" > "Exportar". No lo olvides: el puerto es el 2106, no el 2083.
Una vez tengas tu copia de seguridad a salvo, ya puedes empezar a trabajar con total tranquilidad.
Método 1: Optimizar y reparar desde phpMyAdmin (El más fácil)
Este es el método recomendado para usuarios sin experiencia técnica. No necesitas escribir ni una línea de código SQL, todo se hace con clics.
Acceder a phpMyAdmin
- Entra en el panel de control de tu hosting.
- Busca el icono de phpMyAdmin (suele estar dentro de "Bases de Datos").
- Haz clic en tu base de datos (la que usa WordPress o PrestaShop) en la columna izquierda.
Verás una lista enorme de tablas con nombres como wp_posts, wp_options (en WordPress) o ps_products, ps_orders (en PrestaShop).
Seleccionar todas las tablas
- Mira justo debajo de la lista de tablas. Verás un enlace que dice "Marcar todos" o "Seleccionar todo". Haz clic en él.
- Justo al lado hay un menú desplegable que dice "Con seleccionados:". Despliega el menú.
Optimizar tablas MySQL
En el menú desplegable, elige la opción "Optimizar". phpMyAdmin ejecutará el comando en todas las tablas seleccionadas. Verás una pantalla con los resultados. Debería aparecer "OK" o "Table is already up to date" en la mayoría de ellas.
Reparar base de datos MySQL
Si has tenido errores recientes, repite el proceso pero esta vez elige "Reparar" en el menú desplegable. Si alguna tabla estaba dañada, verás el estado "OK" después de la reparación.
[TIP] Si solo sospechas que una tabla concreta da problemas (por ejemplo,
wp_optionsops_connections), puedes seleccionar solo esa tabla y hacer la operación. No es necesario tocar todas siempre.
Método 2: Usando comandos SQL directos
Este método es para cuando quieres más control o cuando phpMyAdmin te da errores raros. Se ejecuta directamente en la pestaña "SQL" de tu base de datos.
Optimizar tablas MySQL con SQL
Escribe el siguiente comando y haz clic en "Continuar":
OPTIMIZE TABLE wp_posts, wp_comments, wp_options;
Sustituye los nombres de las tablas por las tuyas. Si quieres optimizar todas las tablas de WordPress de una vez, puedes usar esta consulta más avanzada:
SELECT CONCAT('OPTIMIZE TABLE ', table_name, ';')
FROM information_schema.tables
WHERE table_schema = 'nombre_de_tu_base_de_datos';
Esto generará una serie de comandos que ya puedes ejecutar. Es un truco muy útil para no tener que escribir cada nombre.
Reparar base de datos MySQL con SQL
El comando de reparación es igual de sencillo:
REPAIR TABLE wp_posts, wp_options;
Para reparar todas las tablas de una vez, usa el mismo truco de information_schema pero cambiando OPTIMIZE por REPAIR.
[INFO] Si no recuerdas el nombre exacto de tu base de datos, puedes verlo en el archivo
wp-config.php(WordPress) o enapp/config/parameters.php(PrestaShop). Búscalo en el administrador de archivos de tu hosting.
Método 3: Optimizar WordPress database desde la línea de comandos (SSH)
Este método es para los más atrevidos. Si tu hosting tiene acceso SSH, puedes hacerlo todo mucho más rápido. No te asustes, es solo un comando.
- Conéctate por SSH a tu servidor.
- Accede a MySQL con el siguiente comando:
mysql -u tu_usuario -p - Te pedirá la contraseña. Escríbela y pulsa Enter.
- Selecciona tu base de datos:
USE nombre_de_tu_base_de_datos; - Ahora ejecuta la optimización de todas las tablas con este comando mágico:
O si prefieres optimizar todas las tablas de golpe:OPTIMIZE TABLE wp_posts, wp_options, wp_comments, wp_term_relationships;mysqlcheck -u tu_usuario -p --optimize nombre_de_tu_base_de_datos;
El comando mysqlcheck es tu mejor amigo. También puedes usarlo para reparar:
mysqlcheck -u tu_usuario -p --repair nombre_de_tu_base_de_datos;
[WARNING] Si usas Syspanel (acceso por puerto 2106), el acceso SSH suele estar habilitado por defecto. Consulta la documentación de tu panel para saber cómo obtener las credenciales. No confundas el puerto SSH (22) con el puerto del panel (2106).
Optimización específica para WordPress
Además de optimizar las tablas, hay acciones concretas que puedes hacer para optimizar wordpress database de forma efectiva. La tabla wp_options es la que más basura acumula con el tiempo (transients, revisiones, etc.).
Limpiar revisiones antiguas de entradas
WordPress guarda cada revisión que haces de un artículo. Con el tiempo, esto puede ser cientos de filas en wp_posts. Ejecuta esta consulta SQL para eliminarlas:
DELETE FROM wp_posts WHERE post_type = 'revision';
Después, optimiza la tabla wp_posts para liberar el espacio.
Eliminar transients caducados
Los transients son datos temporales que usan los plugins. Si no se limpian, se quedan en wp_options. Esta consulta los borra:
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';
[TIP] Haz esto una vez al mes y notarás una mejora considerable en la velocidad de tu panel de administración.
Reparación específica para PrestaShop
Reparar prestashop database sigue el mismo principio, pero PrestaShop tiene sus propias peculiaridades. Es habitual que las tablas ps_connections, ps_guest y ps_sekeyword acumulen muchísimos registros inútiles.
Limpiar tablas de estadísticas
Puedes vaciar las tablas de estadísticas antiguas con estos comandos (hazlo solo si no te importan los datos históricos del back-office):
TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_page;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_guest;
TRUNCATE TABLE ps_sekeyword;
Después, optimiza todas las tablas:
OPTIMIZE TABLE ps_connections, ps_guest, ps_sekeyword;
Reparar tablas corruptas de PrestaShop
Si tu tienda da error al mostrar productos o al añadir al carrito, es muy probable que una tabla esté corrupta. Usa el comando de reparación que vimos antes, pero aplicado a las tablas de PrestaShop:
REPAIR TABLE ps_product, ps_product_lang, ps_stock_available;
[INFO] Es importante que uses el prefijo correcto. Si tu PrestaShop usa un prefijo distinto a
ps_(por ejemploprestashop_), cámbialo en los comandos.
¿Con qué frecuencia deberías hacer esto?
No hay una regla fija, pero te doy una pauta sensata:
- Cada 3 meses: Optimiza todas las tablas de WordPress o PrestaShop.
- Después de instalar o desinstalar plugins: Haz una optimización.
- Cuando notes la web lenta: Haz una optimización y revisa si hay tablas dañadas.
- Después de un error grave del servidor: Repara todas las tablas sí o sí.
[TIP] Si tu hosting usa Syspanel, puedes configurar un cron job sencillo para que ejecute
mysqlcheckautomáticamente cada semana. En el panel (puerto 2106) busca la sección "Cron Jobs" y añade este comando:mysqlcheck -u usuario -pcontraseña --optimize --all-databases. Ojo, no pongas espacio entre-py la contraseña.
Preguntas frecuentes (FAQ)
¿Es peligroso optimizar o reparar tablas MySQL?
No, son operaciones seguras. El único riesgo real es si el servidor se cae a mitad del proceso, por eso es tan importante la copia de seguridad previa.
¿Puedo optimizar mientras la web está en línea?
Sí, pero si tienes mucho tráfico y la base de datos es grande, es recomendable hacerlo en horas de baja afluencia. La optimización bloquea la tabla durante unos segundos.
¿Qué hago si una tabla no se repara?
Si REPAIR TABLE no funciona, es posible que la tabla esté muy dañada. Prueba a restaurar la copia de seguridad más reciente. Si no tienes, contacta con tu proveedor de hosting.
¿La optimización reduce el tamaño de mi base de datos?
Sí, notablemente. Especialmente en WordPress si has eliminado revisiones y transients antes. Verás que el archivo de backup también pesa menos.
¿Puedo usar un plugin para esto?
Sí, hay plugins como "WP-Optimize" o "Advanced Database Cleaner" para WordPress, y módulos como "Cleaner" para PrestaShop. Son cómodos, pero nada supera a hacerlo directamente en la base de datos para un control total.
Resumen final
Optimizar y reparar las tablas de MySQL no es una tarea de expertos, es un mantenimiento básico que cualquier propietario de una web debería saber hacer. Con las herramientas que te he enseñado (phpMyAdmin, comandos SQL y mysqlcheck), ya tienes todo lo necesario para mantener tu WordPress o PrestaShop rápido y estable.
Recuerda siempre: copia de seguridad antes de tocar nada, y si usas Syspanel, no olvides que el acceso es por el puerto 2106. Con estos hábitos, tu base de datos estará siempre en plena forma y tu web cargará como un tiro.
