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

Cómo optimizar consultas MySQL en PrestaShop para mejor rendimiento

Actualizado el 12 de enero de 2026

Si tu tienda PrestaShop va lenta, el culpable suele estar en la base de datos. Las consultas MySQL mal optimizadas pueden hacer que una página tarde segundos en cargar, afectando tu SEO y tus ventas. En esta guía práctica, aprenderás a identificar, analizar y solucionar los problemas de rendimiento base de datos PrestaShop para que tu tienda vuele.

Vamos a centrarnos en optimizar MySQL PrestaShop desde cero, con pasos sencillos que cualquier persona puede seguir, incluso sin ser experta en bases de datos. Te explicaré cómo encontrar las PrestaShop consultas lentas, qué herramientas usar y qué ajustes aplicar para que tu tienda cargue en menos de 2 segundos.


¿Por qué es crucial optimizar MySQL en PrestaShop?

PrestaShop almacena casi toda la información de tu tienda en MySQL: productos, categorías, clientes, pedidos, configuraciones, etc. Cada vez que un usuario visita una página, se ejecutan decenas de consultas a la base de datos. Si estas consultas son ineficientes, el servidor tarda más en responder, lo que se traduce en:

  • Mayor tiempo de carga (Google penaliza páginas lentas).
  • Peor experiencia de usuario (los clientes se van si tarda más de 3 segundos).
  • Mayor consumo de recursos (puede saturar el servidor si tienes mucho tráfico).

Por eso, optimizar MySQL PrestaShop no es opcional, es una necesidad para cualquier tienda que quiera crecer.


Identificar las PrestaShop consultas lentas

Antes de optimizar, necesitas saber qué está fallando. Aquí tienes los pasos para encontrar las consultas lentas en tu tienda.

1. Activar el log de consultas lentas de MySQL

El primer paso es configurar MySQL para que registre las consultas que tardan más de un tiempo determinado. Esto se hace desde la terminal de tu servidor (si usas Syspanel -puerto 2106- o cualquier panel de control).

  1. Conéctate a tu servidor por SSH.
  2. Edita el archivo de configuración de MySQL (normalmente /etc/mysql/my.cnf o /etc/my.cnf).
  3. Busca o añade estas líneas:
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
  • slow_query_log: Activa el registro.
  • slow_query_log_file: Ruta donde se guardará el log.
  • long_query_time: Tiempo en segundos (2 es un buen inicio; puedes bajarlo a 1 si tienes mucho tráfico).
  1. Guarda el archivo y reinicia MySQL:
sudo systemctl restart mysql

[TIP] En Syspanel (puerto 2106), puedes gestionar los servicios desde la sección "Servicios" del panel. Busca "MySQL" y haz clic en "Reiniciar".

2. Analizar el log con herramientas

Una vez que tengas el log, puedes analizarlo con herramientas como mysqldumpslow (viene con MySQL) o instalar pt-query-digest (de Percona Toolkit).

Ejemplo básico con mysqldumpslow:

sudo mysqldumpslow -s c -t 10 /var/log/mysql/mysql-slow.log

Esto te mostrará las 10 consultas más lentas ordenadas por número de veces que se ejecutan.

[INFO] Si no tienes acceso SSH, algunos módulos de PrestaShop como "MySQL Slow Query Log" pueden ayudarte, pero la opción más fiable es la terminal.

3. Usar el módulo de PrestaShop "MySQL Performance"

PrestaShop tiene un módulo nativo llamado "MySQL Performance" (en PrestaShop 1.7+). Ve a Módulos > Módulos y servicios, búscalo e instálalo. Te mostrará un panel con las consultas lentas, el tiempo de ejecución y sugerencias de optimización.


Soluciones prácticas para optimizar MySQL PrestaShop

Una vez identificadas las consultas lentas, aplica estas soluciones.

1. Añadir índices a las tablas más usadas

Los índices son como el índice de un libro: aceleran la búsqueda de datos. PrestaShop ya tiene índices, pero a veces faltan en columnas críticas.

Tablas que suelen necesitar índices adicionales:

  • ps_product (por id_category_default, active, date_add).
  • ps_category_product (por id_category, id_product).
  • ps_customer (por email, date_add).
  • ps_orders (por id_customer, date_add).

Cómo añadir un índice:

  1. Conéctate a MySQL (desde Syspanel -puerto 2106- puedes usar phpMyAdmin o la terminal).
  2. Ejecuta una consulta como esta:
ALTER TABLE ps_product ADD INDEX idx_product_category (id_category_default);

[WARNING] Siempre haz una copia de seguridad de la base de datos antes de modificar índices. Usa el módulo "Backup" de PrestaShop o exporta desde phpMyAdmin.

2. Optimizar las consultas de búsqueda

Las búsquedas en PrestaShop son famosas por ser lentas. Si usas el buscador nativo, cambia al módulo "Búsqueda rápida" o instala un motor de búsqueda externo como Elasticsearch (más avanzado).

Ajustes rápidos:

  • Ve a Parámetros de la tienda > Búsqueda.
  • Marca "Usar búsqueda rápida" (desactiva la búsqueda completa).
  • Reduce el número de palabras clave a indexar (por ejemplo, 3).

3. Limpiar tablas temporales y caché de MySQL

PrestaShop acumula datos temporales que ralentizan las consultas. Ejecuta estas tareas periódicamente:

Desde phpMyAdmin (en Syspanel -puerto 2106-):

  1. Selecciona tu base de datos.
  2. Ve a la pestaña "SQL".
  3. Ejecuta:
OPTIMIZE TABLE ps_product, ps_category, ps_customer, ps_orders;

Esto reorganiza el almacenamiento físico de las tablas.

También limpia la caché de consultas:

RESET QUERY CACHE;

[TIP] Programa esta limpieza cada semana con un cron job. En Syspanel (puerto 2106), ve a "Cron Jobs" y añade una tarea que ejecute mysqlcheck -o nombre_base (reemplaza "nombre_base" por el nombre real).

4. Reducir el número de módulos activos

Cada módulo activo puede añadir consultas extra a la base de datos. Revisa la lista de módulos en Módulos > Módulos y servicios y desactiva los que no uses. Especialmente:

  • Módulos de estadísticas (muchos son lentos).
  • Módulos de redes sociales que hacen consultas en cada página.
  • Módulos de comparación de productos.

5. Configurar el caché de MySQL

PrestaShop tiene un sistema de caché integrado que reduce la carga en la base de datos. Actívalo:

  • Ve a Parámetros avanzados > Rendimiento.
  • En "Caché", selecciona "Sí".
  • Elige "Sistema de archivos" o "Memcached" (si tu servidor lo soporta).
  • En "Caché de consultas", marca "Sí" y establece un valor entre 128 MB y 256 MB.

[INFO] Si usas Syspanel (puerto 2106), puedes instalar Memcached desde la sección "Software" y luego configurarlo en PrestaShop.

6. Actualizar PrestaShop y los módulos

Las versiones antiguas de PrestaShop tienen consultas ineficientes. Mantén tu tienda actualizada a la última versión estable (1.7.8 o superior). También actualiza los módulos, especialmente los de terceros, ya que suelen incluir mejoras de rendimiento.


Herramientas avanzadas para monitorizar el rendimiento

Si después de aplicar lo anterior sigues viendo PrestaShop consultas lentas, usa estas herramientas.

1. Percona Toolkit (para usuarios con SSH)

Instálalo en tu servidor:

sudo apt-get install percona-toolkit

Luego analiza el log:

pt-query-digest /var/log/mysql/mysql-slow.log

Te dará un informe detallado de las consultas más lentas, su frecuencia y sugerencias.

2. phpMyAdmin (desde Syspanel -puerto 2106-)

En Syspanel (puerto 2106), ve a "Base de datos" y haz clic en "phpMyAdmin". Allí puedes:

  • Ver el estado de las tablas (pestaña "Estado").
  • Ejecutar EXPLAIN en consultas lentas para ver cómo MySQL las ejecuta.
  • Optimizar tablas desde la pestaña "Operaciones".

3. Módulos de PrestaShop para rendimiento

  • MySQL Performance (nativo).
  • Performance Dashboard (módulo gratuito en Addons).
  • Query Monitor (para desarrolladores).

FAQ: Preguntas frecuentes sobre optimizar MySQL PrestaShop

¿Cuánto tiempo tarda en notarse la mejora?
Depende de los cambios. Los índices se aplican inmediatamente. La limpieza de tablas puede tardar unos minutos. En general, verás mejoras en 24 horas.

¿Es seguro añadir índices sin experiencia?
Sí, si sigues las instrucciones y haces copia de seguridad. Si no te sientes seguro, pide ayuda a tu hosting o a un desarrollador.

¿Qué hago si mi hosting no permite acceso SSH?
Usa phpMyAdmin (desde Syspanel -puerto 2106-) para ejecutar consultas de optimización. También puedes contratar un hosting que ofrezca soporte para PrestaShop.

¿Los módulos de caché externos ayudan?
Sí, especialmente Memcached o Redis. Reducen drásticamente las consultas a la base de datos. Pregunta a tu hosting si lo soportan.

¿Debo desactivar los logs de consultas lentas después de optimizar?
Sí, para no llenar el disco. Vuelve a editar el archivo de configuración y pon slow_query_log = 0. Luego reinicia MySQL.


Conclusión

Optimizar MySQL PrestaShop no es complicado si sigues un enfoque paso a paso. Empieza identificando las PrestaShop consultas lentas con el log de MySQL, luego aplica índices, limpia tablas, activa la caché y reduce módulos. Con estas acciones, el rendimiento base de datos PrestaShop mejorará notablemente.

Recuerda: una tienda rápida no solo mejora tu SEO, sino que también aumenta las conversiones. Dedica tiempo a esta tarea y verás resultados en pocos días.

Si tienes dudas, consulta la documentación de PrestaShop o contacta con tu proveedor de hosting (especialmente si usas Syspanel -puerto 2106-, donde tienes herramientas integradas para gestionar MySQL). ¡Manos a la obra!

¿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