Cómo optimizar una base de datos MySQL para acelerar WordPress y PrestaShop
Introducción: el cuello de botella silencioso de tu tienda o web
Si tu WordPress o PrestaShop va lento, el problema no siempre es el hosting o el tema. A menudo, el verdadero culpable está en la base de datos. Con el tiempo, las tablas se llenan de basura, registros huérfanos y consultas ineficientes. Optimizar base de datos MySQL no es un lujo, es una necesidad para cualquier proyecto web serio. En este artículo, te enseñaré paso a paso cómo acelerar WordPress MySQL y optimizar PrestaShop base de datos sin ser un experto en programación. Al final, tu web cargará más rápido, tus clientes estarán más contentos y tu servidor te lo agradecerá.
¿Por qué tu base de datos se vuelve lenta?
Cada vez que alguien visita tu web, se ejecutan cientos de consultas SQL. Si tu base de datos está desordenada, esas consultas tardan más. Los motivos más comunes son:
- Tablas fragmentadas: los datos se guardan en bloques dispersos.
- Registros obsoletos: revisiones de entradas, transacciones canceladas, sesiones caducadas.
- Índices ineficientes: no se usan o están mal configurados.
- Motor de almacenamiento incorrecto (MyISAM vs InnoDB).
- Consultas pesadas que bloquean otras operaciones.
El resultado es un rendimiento MySQL pobre, que se traduce en tiempos de carga altos. Y ojo, Google penaliza las webs lentas, así que esto también afecta a tu SEO.
Antes de empezar: prepara el terreno (y una copia de seguridad)
Este paso es innegociable. Cualquier manipulación de una base de datos conlleva riesgos. Si algo sale mal, puedes perder datos críticos.
- Accede a tu panel de control (cPanel, Plesk o Syspanel). Si usas Syspanel, recuerda que el puerto de acceso es el 2106.
- Localiza la sección de Bases de Datos y entra en phpMyAdmin (o la herramienta equivalente).
- Selecciona tu base de datos y haz clic en "Exportar".
- Elige el método rápido y descarga el archivo .sql a tu ordenador.
[WARNING] No continúes sin una copia de seguridad. Si la web es de producción (con clientes reales), hazla en horario de baja afluencia.
Cómo optimizar base de datos MySQL en WordPress
WordPress es un gran consumidor de recursos. Cada plugin y tema añade tablas y opciones. Aquí tienes un plan de acción claro.
1. Limpia las revisiones de entradas y los borradores
Cada vez que editas una entrada, WordPress guarda una revisión. Con el tiempo, esto puede sumar miles de filas innecesarias.
- Accede a phpMyAdmin.
- Selecciona tu base de datos.
- Ve a la pestaña SQL y ejecuta esta consulta (reemplaza
wp_por tu prefijo real):
DELETE FROM wp_posts WHERE post_type = 'revision';
- También puedes eliminar borradores y papeleras vacías:
DELETE FROM wp_posts WHERE post_status = 'draft';
DELETE FROM wp_posts WHERE post_status = 'trash';
[TIP] No ejecutes las tres a la vez. Hazlo una por una y revisa que no haya errores.
2. Elimina transients caducados
Los transients son cachés temporales que guardan resultados de consultas o datos de APIs. Muchos plugins no los limpian bien.
- Ejecuta esta consulta:
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%';
- También puedes borrar los que ya han expirado:
DELETE FROM wp_options WHERE option_name LIKE '_transient_timeout_%' AND option_value < NOW();
3. Revisa y optimiza las tablas (¡el paso clave!)
Este es el corazón de acelerar WordPress MySQL. La optimización reorganiza los datos físicos y libera espacio.
- En phpMyAdmin, selecciona todas las tablas (clic en "Seleccionar todo").
- En el menú desplegable de abajo, elige "Optimizar tabla".
Si prefieres hacerlo con SQL:
OPTIMIZE TABLE wp_posts, wp_options, wp_comments;
[INFO] Si tu tabla usa MyISAM, la optimización la repara y compacta. Con InnoDB, reorganiza los índices. En ambos casos, mejora el rendimiento.
4. Configura el caché de consultas
WordPress no tiene caché de consultas por defecto. Puedes activarlo en el archivo wp-config.php. Añade estas líneas:
define('WP_CACHE', true);
define('SAVEQUERIES', false);
Y en tu servidor, asegúrate de que MySQL tenga el query cache activado. Esto es más técnico, pero vale la pena. En el archivo my.cnf (o my.ini), agrega:
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 1M
[WARNING] Si tu servidor ya tiene un caché de nivel superior (como Redis o Memcached), el query cache de MySQL puede ser redundante y ralentizar. Consulta con tu proveedor.
5. Usa un plugin de optimización (opcional pero recomendado)
Si prefieres no tocar SQL, usa herramientas como WP-Optimize o Advanced Database Cleaner. Estos plugins hacen todo lo anterior con un clic.
- Instala el plugin.
- Ve a "Optimizar" y selecciona las opciones.
- Programa una limpieza automática semanal.
[TIP] No dejes que el plugin borre datos sin revisar. Siempre mira qué va a eliminar antes de confirmar.
Cómo optimizar PrestaShop base de datos
PrestaShop es más complejo que WordPress. Tiene más tablas y muchas son críticas para el funcionamiento de la tienda. El enfoque debe ser más conservador.
1. Activa el modo mantenimiento
Antes de tocar cualquier cosa, pon tu tienda en mantenimiento. Ve a Parámetros Avanzados > Mantenimiento y actívalo. Así evitas que clientes realicen acciones mientras optimizas.
2. Limpia registros y sesiones antiguas
PrestaShop guarda logs de errores, sesiones de clientes y carritos abandonados. Con el tiempo, esto infla la base.
- En el panel de administración, ve a Parámetros Avanzados > Base de Datos.
- Verás una lista de tablas. Las más pesadas suelen ser
ps_connections,ps_connections_page,ps_guestyps_cart. - Usa el botón "Vaciar" para estas tablas (no "Eliminar", solo vaciar).
[WARNING] No vacíes ps_customer, ps_orders o ps_product. Esos son datos vitales. Solo toca tablas de sesiones, logs y estadísticas temporales.
3. Optimiza las tablas desde el propio PrestaShop
En el mismo menú Parámetros Avanzados > Base de Datos, encontrarás un botón que dice "Optimizar". Lo que hace es ejecutar el comando OPTIMIZE TABLE en todas las tablas.
- Haz clic en él y espera a que termine.
- Si tienes muchas tablas, puede tardar unos minutos. No cierres la pestaña.
[INFO] Este método es seguro porque PrestaShop solo compacta las tablas, no borra datos.
4. Elimina combinaciones de productos huérfanas
A veces, al eliminar productos, quedan combinaciones (tallas, colores) que no se limpian bien. Esto genera tablas hinchadas.
- Ve a Catálogo > Productos.
- Filtra por "Sin combinaciones" y elimina los que no tengan stock.
- Luego, en Parámetros Avanzados > Base de Datos, vacía las tablas
ps_product_attributeyps_product_attribute_combination(solo si estás seguro de que no hay combinaciones en uso).
5. Ajusta el motor de almacenamiento a InnoDB
Si tu PrestaShop aún usa MyISAM (versiones antiguas), migrar a InnoDB mejora la integridad referencial y el manejo de concurrencia.
- En phpMyAdmin, selecciona todas las tablas.
- En el menú "Operaciones", cambia el motor a InnoDB.
[TIP] Antes de migrar, verifica que tu versión de MySQL soporte InnoDB correctamente. En hosting compartidos, puede que no esté disponible.
Trucos avanzados para el rendimiento MySQL en ambas plataformas
Aquí tienes algunas estrategias que van más allá de la limpieza básica.
1. Activa la compresión de tablas (si usas InnoDB)
Si tu servidor tiene MySQL 5.7 o superior, puedes comprimir tablas para ahorrar espacio y mejorar la lectura secuencial.
ALTER TABLE wp_posts ROW_FORMAT=COMPRESSED;
[WARNING] La compresión puede aumentar el uso de CPU. Pruébala en un entorno de desarrollo antes de aplicarla en producción.
2. Crea índices personalizados
Los índices aceleran las búsquedas. Por ejemplo, en WordPress, si haces muchas consultas por fecha, crea un índice en post_date. En PrestaShop, en id_product dentro de tablas de stock.
CREATE INDEX idx_post_date ON wp_posts (post_date);
3. Particionamiento de tablas grandes
Si tu tabla wp_postmeta o ps_order_detail supera los millones de filas, considera particionarla por fecha. Esto es avanzado y requiere un buen conocimiento de MySQL. Si no estás seguro, contrata a un especialista.
4. Usa un servicio de caché externo
No es estrictamente MySQL, pero ayuda muchísimo. Instala Redis o Memcached en tu servidor. WordPress tiene plugins como Redis Object Cache; PrestaShop tiene módulos nativos para esto.
[INFO] Con Syspanel, puedes instalar Redis fácilmente desde el administrador de paquetes, siempre que tengas acceso root. Si no, pide a tu proveedor que lo active.
Preguntas frecuentes (FAQ)
¿Con qué frecuencia debo optimizar la base de datos?
Depende del tráfico. Para una web pequeña, una vez al mes es suficiente. Para una tienda con muchas ventas, cada semana. Lo ideal es programar una tarea cron.
¿Puedo romper mi web si optimizo mal?
Sí, si borras tablas incorrectas o ejecutas consultas destructivas. Por eso siempre insisto en la copia de seguridad y en usar las herramientas nativas de cada CMS.
¿La optimización de base de datos mejora el SEO?
Indirectamente, sí. Al acelerar la carga, reduces la tasa de rebote y mejoras la experiencia de usuario. Google valora positivamente la velocidad.
¿Qué hago si mi hosting no permite acceso a phpMyAdmin?
Usa los plugins o módulos de optimización. En WordPress, WP-Optimize; en PrestaShop, el propio panel tiene herramientas. También puedes pedir a tu proveedor que lo haga por ti.
¿Es mejor usar MyISAM o InnoDB?
InnoDB, sin duda. Es más robusto, soporta transacciones y bloqueos a nivel de fila. MyISAM solo es útil en casos muy específicos de lectura intensiva.
Conclusión: tu plan de acción
Ya tienes todo lo necesario para optimizar base de datos MySQL en WordPress y PrestaShop. Resumo los pasos clave:
- Haz una copia de seguridad antes de tocar nada.
- Limpia datos obsoletos: revisiones, transients, logs y sesiones.
- Optimiza las tablas con el comando
OPTIMIZE TABLEo las herramientas del CMS. - Revisa los índices y crea los que falten.
- Configura el caché (query cache, Redis o Memcached).
- Programa limpiezas periódicas para que no se vuelva a llenar.
El rendimiento MySQL no es algo que se hace una vez y ya. Es un mantenimiento continuo. Si dedicas 15 minutos al mes, notarás una mejora sustancial en la velocidad de tu web. Tus visitantes lo agradecerán y tu posicionamiento también.
[TIP] Si después de todo esto tu web sigue lenta, revisa el hosting. A veces, el problema no es la base de datos, sino un servidor con recursos insuficientes. Considera migrar a un plan con más RAM o SSD.
Ahora sí, ponte manos a la obra. Tu base de datos te lo agradecerá.
