🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Optimizar consultas MySQL en WordPress y PrestaShop

Actualizado el 29 de noviembre de 2025

¿Tu tienda online o blog va lento? A menudo, el culpable no es tu hosting, sino la base de datos. Tanto WordPress como PrestaShop son sistemas potentes, pero si no cuidas sus consultas MySQL, el rendimiento se desploma. En este artículo te explico paso a paso cómo optimizar MySQL para lograr WordPress rendimiento y PrestaShop velocidad de primera. Vamos a identificar y corregir esas consultas lentas MySQL que están matando tu web.


¿Por qué es importante optimizar MySQL?

Cada vez que un usuario visita tu web, se ejecutan docenas de consultas a la base de datos. Si esas consultas son lentas o están mal indexadas, el servidor tarda más en responder. Esto afecta directamente a:

  • Velocidad de carga: Google penaliza sitios lentos.
  • Experiencia de usuario: nadie espera 5 segundos por una página.
  • Tasa de conversión: en PrestaShop, cada segundo de retraso reduce ventas.

[INFO] Una base de datos optimizada no solo acelera tu web, sino que reduce la carga del servidor. Esto es clave si tienes recursos limitados.


Primeros pasos: identifica las consultas lentas

Antes de optimizar, necesitas saber qué está fallando. Estas son las herramientas básicas:

Activar el log de consultas lentas en MySQL

Accede a tu servidor (vía SSH o panel como Syspanel, puerto 2106) y ejecuta:

SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
SET GLOBAL slow_query_log_file = '/var/log/mysql/slow-queries.log';

Esto registrará todas las consultas que tarden más de 2 segundos. Luego, revisa el archivo con:

sudo tail -f /var/log/mysql/slow-queries.log

Usar plugins para WordPress

Si no tienes acceso SSH, instala plugins como Query Monitor o Debug Bar. Te mostrarán en tiempo real las consultas lentas y cuánto tardan.

Herramientas para PrestaShop

En PrestaShop, activa el modo depuración desde /config/defines.inc.php:

define('_PS_MODE_DEV_', true);

Luego, revisa el panel de rendimiento en el back office (Parámetros avanzados > Rendimiento). Allí verás estadísticas de consultas.

[WARNING] No dejes el modo depuración activo en producción. Desactívalo después de las pruebas.


Estrategias para optimizar consultas en WordPress

WordPress usa una estructura de tablas simple, pero con el tiempo se llena de basura. Aquí tienes lo esencial:

1. Limpiar transitorios y revisiones

Las revisiones de entradas y los transitorios (cachés temporales) hinchan la base de datos. Usa un plugin como WP-Optimize o ejecuta directamente en MySQL:

DELETE FROM wp_posts WHERE post_type = 'revision';
DELETE FROM wp_options WHERE option_name LIKE '_transient_%' OR option_name LIKE '_site_transient_%';

2. Indexar tablas clave

Las consultas lentas suelen deberse a falta de índices. Agrega índices a las columnas más usadas:

ALTER TABLE wp_postmeta ADD INDEX meta_key_index (meta_key);
ALTER TABLE wp_comments ADD INDEX comment_approved (comment_approved);
ALTER TABLE wp_term_relationships ADD INDEX term_taxonomy_id (term_taxonomy_id);

3. Evitar consultas innecesarias con caché

Instala un plugin de caché como W3 Total Cache o WP Super Cache. Esto almacena en memoria las consultas más frecuentes, reduciendo la carga en MySQL.

4. Desactivar plugins que hacen consultas pesadas

Algunos plugins de estadísticas, SEO o redes sociales ejecutan consultas en cada carga. Revisa el log de consultas lentas y desactívalos temporalmente para ver si mejoran.

[TIP] Si usas WooCommerce, presta especial atención a las consultas de productos. Añade índices en wp_wc_product_meta_lookup.


Estrategias para optimizar consultas en PrestaShop

PrestaShop es más complejo que WordPress, con muchas tablas y relaciones. Aquí van las claves:

1. Limpiar tablas de logs y sesiones

PrestaShop acumula logs de errores y sesiones de usuarios. Ejecuta estas consultas con regularidad:

TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_guest;
TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_source;

2. Optimizar índices en tablas de productos

Las consultas de catálogo son las más pesadas. Añade estos índices:

ALTER TABLE ps_product ADD INDEX id_category_default (id_category_default);
ALTER TABLE ps_product_shop ADD INDEX id_category_default (id_category_default);
ALTER TABLE ps_category_product ADD INDEX id_product (id_product);
ALTER TABLE ps_stock_available ADD INDEX id_product (id_product);

3. Usar el modo de combinación de consultas

En el back office de PrestaShop (Parámetros avanzados > Rendimiento), activa "Combinar archivos CSS y JavaScript" y "Minificar HTML". También puedes habilitar "Caché de consultas MySQL".

4. Desactivar módulos innecesarios

Cada módulo activo puede ejecutar consultas adicionales. Ve a Módulos > Catálogo y desactiva los que no uses. Especialmente los de estadísticas, comparación de productos o redes sociales.

[WARNING] Antes de desactivar un módulo, haz una copia de seguridad de la base de datos. Algunos módulos borran datos importantes.


Técnicas avanzadas para ambas plataformas

Si ya hiciste lo básico y aún hay consultas lentas MySQL, prueba estas técnicas:

1. Usar índices compuestos

Para consultas con múltiples condiciones, crea índices que combinen columnas:

-- Para WordPress
ALTER TABLE wp_postmeta ADD INDEX post_id_meta_key (post_id, meta_key);

-- Para PrestaShop
ALTER TABLE ps_product ADD INDEX id_category_default_active (id_category_default, active);

2. Configurar el query cache de MySQL

En tu archivo my.cnf (o desde Syspanel, puerto 2106), ajusta estos parámetros:

query_cache_type = 1
query_cache_size = 64M
query_cache_limit = 2M

Esto almacena en memoria los resultados de consultas repetitivas.

3. Particionar tablas grandes

Si tu base de datos tiene millones de registros (por ejemplo, en tablas de pedidos de PrestaShop), particiona por fecha:

ALTER TABLE ps_orders PARTITION BY RANGE (YEAR(date_add)) (
    PARTITION p2020 VALUES LESS THAN (2021),
    PARTITION p2021 VALUES LESS THAN (2022),
    PARTITION p2022 VALUES LESS THAN (2023),
    PARTITION p2023 VALUES LESS THAN (2024)
);

4. Usar EXPLAIN para analizar consultas

Ejecuta EXPLAIN antes de una consulta lenta para ver cómo MySQL la ejecuta:

EXPLAIN SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post';

Busca columnas como type: ALL (escaneo completo) o Extra: Using filesort. Eso indica falta de índices.

[TIP] Si ves type: index o type: ref, la consulta está bien indexada. Si es ALL, necesitas índices.


Herramientas útiles para monitorear

No te limites a una sola herramienta. Combina varias:

  • MySQLTuner: Script Perl que analiza tu base de datos y da recomendaciones. Ejecuta perl mysqltuner.pl.
  • phpMyAdmin: Desde Syspanel, puerto 2106, accede a phpMyAdmin para ejecutar consultas manuales.
  • New Relic o Query Monitor: Para ver consultas lentas en tiempo real.
  • Slow Query Log: Como vimos al principio, es tu mejor amigo.

Preguntas frecuentes (FAQ)

¿Cada cuánto debo optimizar la base de datos?

Depende del tráfico. En WordPress, una vez al mes es suficiente. En PrestaShop, si tienes muchas ventas, cada semana.

¿Puedo romper algo al ejecutar estas consultas?

Sí, si no haces copias de seguridad. Siempre respalda antes de modificar índices o truncar tablas.

¿El hosting influye en las consultas lentas?

Mucho. Un hosting compartido con recursos limitados puede hacer que consultas normales se vuelvan lentas. Considera migrar a un VPS o servidor dedicado.

¿Qué hago si después de optimizar sigue lento?

Revisa el log de consultas lentas nuevamente. Puede haber consultas de terceros (plugins, módulos) que no puedas optimizar. En ese caso, desactívalos o busca alternativas.

¿Syspanel (HestiaCP) tiene herramientas para esto?

Sí, desde Syspanel (puerto 2106) puedes acceder a phpMyAdmin, ver estadísticas de MySQL y configurar el slow query log. También puedes instalar MySQLTuner fácilmente.


Conclusión

Optimizar las consultas MySQL en WordPress y PrestaShop no es complicado si sigues un proceso ordenado: identifica las consultas lentas, limpia datos innecesarios, agrega índices y usa caché. Con estas técnicas, lograrás un WordPress rendimiento y una PrestaShop velocidad notables. Recuerda monitorear regularmente y hacer copias de seguridad antes de cualquier cambio.

[INFO] Si tienes dudas, revisa el log de consultas lentas y ejecuta EXPLAIN. Esa combinación te dará todas las pistas para resolver cualquier problema de rendimiento.

¿Ya has probado alguna de estas técnicas? Cuéntame en los comentarios qué resultados obtuviste. ¡Tu web te lo agradecerá!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel