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

Optimización de bases de datos MySQL para PrestaShop

Actualizado el 11 de junio de 2026

¿Por qué tu PrestaShop va lento? El secreto está en la base de datos

Si tienes una tienda online con PrestaShop, seguramente has notado que, con el tiempo, las páginas tardan más en cargar. No siempre es culpa del hosting o de las imágenes. En la mayoría de los casos, el verdadero cuello de botella está en la base de datos MySQL que almacena todos tus productos, pedidos, clientes y configuraciones. Una base de datos desordenada y sin optimizar es como un almacén lleno de cajas apiladas sin ningún criterio: al final, encontrar cualquier cosa lleva muchísimo tiempo.

La optimización de la base de datos MySQL para PrestaShop no es un lujo, es una necesidad para mantener un buen rendimiento. Un sitio lento no solo frustra a tus clientes, sino que también afecta tu posicionamiento en Google. Los motores de búsqueda penalizan las tiendas que cargan lento, y si no aceleras tu web, tu competencia te va a comer la tostada. Pero no te preocupes, porque en esta guía te voy a explicar, paso a paso y sin tecnicismos innecesarios, cómo poner a punto tu base de datos para que tu tienda vuele.

Antes de empezar: haz una copia de seguridad (¡sí o sí!)

[WARNING] Este es el paso más importante de todo el artículo. Si no haces una copia de seguridad y algo sale mal, podrías perder toda la información de tu tienda. No lo saltes.

Antes de tocar cualquier cosa, necesitas asegurarte de que tienes una copia de seguridad completa de tu base de datos. Puedes hacerlo desde el panel de control de tu hosting (como cPanel o Syspanel) o usando herramientas como phpMyAdmin. Si tu hosting usa Syspanel, recuerda que el puerto de acceso es el 2106, y desde ahí podrás acceder a la gestión de bases de datos. Exporta un archivo .sql de tu base de datos y guárdalo en un lugar seguro. Si no sabes cómo hacerlo, busca en Google "cómo exportar base de datos MySQL con phpMyAdmin", porque es un proceso muy visual y sencillo.

¿Qué es eso de las tablas y por qué importan tanto?

Piensa en tu base de datos como un archivador gigante con muchos cajones. Cada cajón es una tabla. En PrestaShop, hay decenas de tablas: una para productos, otra para pedidos, otra para clientes, otra para el historial de navegación, etc. Con el tiempo, estos cajones se llenan de "papeles" que ya no sirven, como versiones antiguas de productos, sesiones caducadas o registros de visitas de hace meses. Todo ese peso extra hace que cada consulta a la base de datos sea más lenta.

La optimización de MySQL para PrestaShop consiste, básicamente, en limpiar y reorganizar estos cajones para que el sistema encuentre la información mucho más rápido. Hay varias técnicas, desde las más simples (que puedes hacer tú mismo) hasta las más avanzadas (que requieren un poco de conocimiento técnico). Vamos a verlas todas.

Técnica 1: Activa el mantenimiento automático de PrestaShop

PrestaShop tiene una herramienta integrada que se llama "Mantenimiento de la base de datos". Puedes encontrarla en el panel de administración, dentro de "Parámetros Avanzados" y luego "Base de datos". Esta herramienta te permite optimizar las tablas con un solo clic. Es como pasar la aspiradora por todos los cajones de una vez.

Para usarla, simplemente selecciona todas las tablas (o las que quieras) y haz clic en "Optimizar". El sistema ejecutará una serie de comandos SQL que reorganizan los datos y liberan espacio. Lo ideal es hacer esto al menos una vez al mes, pero si tu tienda tiene mucho tráfico, puedes hacerlo cada semana.

¿Cómo programar la optimización automática?

Si eres de los que se olvida de hacer estas tareas, puedes programar una tarea cron en tu servidor. Esto es especialmente útil si tu hosting usa Syspanel, ya que puedes crear un cron job fácilmente desde el panel. El comando sería algo así:

php /ruta/a/tu/prestashop/admin/backoffice/cron_optimize_db.php

Pero no te preocupes si esto te suena a chino. Lo más fácil es que busques en el foro de PrestaShop cómo configurar el cron de optimización. Es un proceso muy documentado.

Técnica 2: Elimina los datos basura que ya no sirven

Esta es la parte más efectiva y, a la vez, la más satisfactoria. PrestaShop guarda mucha información que, en realidad, no necesitas. Vamos a limpiarla.

Limpia las sesiones caducadas

Cada vez que un visitante entra a tu tienda, se crea una sesión. Si no compra y se va, esa sesión queda guardada. Con el tiempo, puede haber miles de sesiones inútiles ocupando espacio. En el mismo apartado de "Base de datos" del administrador, puedes ver el número de sesiones y vaciarlas. Hazlo sin miedo, es seguro.

Limpia el historial de navegación de los clientes

PrestaShop guarda un registro de las páginas que visita cada cliente. Si tienes muchos clientes, esto puede crecer exponencialmente. Puedes borrar este historial desde el administrador. No afecta a la funcionalidad de la tienda, solo a los informes de "productos vistos". Si no usas mucho esa métrica, bórralo.

Elimina los mensajes de correo no enviados

PrestaShop tiene una cola de correos. A veces, algunos correos fallan y se quedan en la cola para siempre. Revisa esta cola y elimina los que estén marcados como "error". Es un pequeño gesto que libera espacio.

Vacía la papelera de productos y pedidos

Si tienes muchos productos o pedidos en la papelera, vacíala. Esos registros siguen en la base de datos y solo añaden peso. En PrestaShop 1.7 y 1.8, puedes vaciar la papelera desde el listado de productos o pedidos.

Técnica 3: Cambia el motor de almacenamiento a InnoDB

Esta es una optimización un poco más técnica, pero muy recomendable. Los motores de almacenamiento son como los "formatos" internos de las tablas. PrestaShop viene con un motor llamado InnoDB, que es mucho más eficiente que el antiguo MyISAM. Sin embargo, si tu tienda viene de una versión antigua o de una migración, es posible que tengas tablas en MyISAM.

[INFO] InnoDB permite el bloqueo a nivel de fila, lo que significa que cuando un cliente hace un pedido, no bloquea toda la tabla, sino solo la fila que está usando. Esto acelera muchísimo las operaciones concurrentes (varios clientes comprando a la vez).

Para cambiar el motor, puedes ir a phpMyAdmin, seleccionar todas las tablas y, en el menú desplegable de "Operaciones", elegir la opción de "Cambiar motor de almacenamiento" y seleccionar InnoDB. Si tienes miedo de hacerlo a mano, busca un módulo de PrestaShop que haga esta conversión automáticamente. Es un cambio muy beneficioso para el rendimiento.

Técnica 4: Optimiza las consultas con índices (para valientes)

Esta parte es más avanzada, pero te la explico para que sepas qué es lo que hace un buen profesional. Los índices son como los índices de un libro: en lugar de leer página por página para encontrar una palabra, vas directamente al índice y sabes en qué página está. En MySQL, los índices hacen lo mismo con las columnas de las tablas.

Con el tiempo, es posible que algunas consultas de PrestaShop no estén usando los índices adecuados. Puedes usar la herramienta "Explicar" de phpMyAdmin para ver cómo se ejecutan las consultas, pero esto ya es nivel experto. Si no te sientes cómodo, no lo hagas tú. Contrata a un desarrollador o usa un módulo de optimización que analice y cree índices automáticamente.

¿Qué columnas deberían tener índice?

Las columnas que se usan en las cláusulas WHERE, ORDER BY y JOIN son las candidatas ideales. Por ejemplo, en la tabla ps_orders, la columna id_customer debería tener un índice. En ps_product, la columna id_category_default también. Pero ojo, no crees índices en todas las columnas, porque ralentizan las inserciones de datos. Solo en las que se usan para buscar y ordenar.

Técnica 5: Ajusta los parámetros de MySQL (my.cnf)

Otra forma de acelerar tu PrestaShop es ajustando la configuración del propio servidor MySQL. Esto se hace en el archivo my.cnf (en Linux) o my.ini (en Windows). Si tu hosting es compartido, no podrás tocar esto, pero si tienes un VPS o un servidor dedicado, merece la pena.

Parámetros clave a revisar

  • innodb_buffer_pool_size: Esta es la memoria caché que usa InnoDB. Debería ser, como norma general, el 70% de la RAM total de tu servidor. Si tienes 4GB de RAM, ponle 2.8GB. Esto acelera muchísimo la lectura de datos.
  • query_cache_size: Aunque está en desuso en versiones recientes de MySQL, en versiones antiguas puede ayudar. Si usas MySQL 5.7 o inferior, puedes ponerle un valor de 128MB o 256MB.
  • max_connections: Asegúrate de que no sea demasiado alto, porque cada conexión consume memoria. Un valor de 100-200 es suficiente para la mayoría de tiendas.

[TIP] Si no sabes dónde está tu archivo de configuración, puedes ejecutar el comando mysqladmin variables desde la terminal para ver los valores actuales. Pero, de nuevo, si no tienes experiencia con servidores, pide ayuda a tu proveedor de hosting.

Técnica 6: Usa un plugin de caché de MySQL

Una de las mejores inversiones para acelerar PrestaShop es instalar un módulo de caché de consultas. Estos módulos guardan los resultados de las consultas más frecuentes en memoria, de manera que no tienen que volver a consultar la base de datos cada vez. Es como si tuvieras un asistente que ya se sabe las respuestas de memoria.

PrestaShop tiene su propia capa de caché, pero puedes potenciarla con módulos como Cache Killer o con la integración de Redis o Memcached. Redis es especialmente potente y, si tu hosting lo soporta, es la opción recomendada. Puedes configurarlo en el archivo parameters.php de PrestaShop, pero es más fácil usar un módulo que haga la configuración por ti.

Técnica 7: Mantén tu PrestaShop y sus módulos actualizados

Esta parece obvia, pero mucha gente la ignora. Cada actualización de PrestaShop incluye mejoras en el código que hacen que las consultas a la base de datos sean más eficientes. Lo mismo ocurre con los módulos. Un módulo desactualizado puede estar haciendo consultas ineficientes que ralentizan toda la tienda.

Además, las actualizaciones suelen incluir parches de seguridad, así que estás matando dos pájaros de un tiro: mejoras de rendimiento y seguridad. No seas de los que dicen "si funciona, no lo toques". En el mundo del software, "si funciona, actualízalo".

Técnica 8: Revisa los logs y las tablas más grandes

Si quieres saber qué está haciendo lenta tu base de datos, tienes que mirar las tablas más grandes. Puedes hacerlo en phpMyAdmin, en la pestaña "Base de datos", y verás el tamaño de cada tabla. Las tablas que suelen crecer más son:

  • ps_connections (visitas)
  • ps_connections_page (páginas vistas por visita)
  • ps_log (logs de errores)
  • ps_customer_message (mensajes de clientes)
  • ps_cart (carritos abandonados)

Si alguna de estas tablas es enorme (más de 500MB), es hora de limpiarla. Puedes vaciarla por completo (cuidado con ps_cart, porque si la vacías, los carritos abandonados de tus clientes desaparecerán) o usar un módulo que programe la limpieza automática.

Un plan de acción semanal para mantener tu tienda rápida

Para que no te abrumes, te propongo un plan sencillo que puedes seguir cada semana:

  1. Día 1: Entra al panel de administración de PrestaShop y ejecuta la optimización de tablas desde "Parámetros Avanzados" > "Base de datos".
  2. Día 2: Revisa el número de sesiones activas y vacíalas.
  3. Día 3: Revisa la cola de correos y elimina los que tengan errores.
  4. Día 4: Mira los logs de errores y si hay mucha basura, límpialos.
  5. Día 5: Comprueba si hay actualizaciones de PrestaShop y de los módulos.

Siguiendo este plan, tu base de datos estará siempre limpia y tu tienda cargará mucho más rápido. No necesitas ser un experto en MySQL, solo ser constante.

Preguntas frecuentes (FAQ) sobre la optimización de MySQL en PrestaShop

¿Con qué frecuencia debo optimizar mi base de datos de PrestaShop?

Depende del tamaño y el tráfico de tu tienda. Como mínimo, una vez al mes. Si tienes más de 10,000 productos o un tráfico alto, hazlo cada semana.

¿Es seguro vaciar la tabla de sesiones?

Sí, es completamente seguro. Las sesiones se regeneran automáticamente cuando un cliente vuelve a entrar. Solo perderás la sesión de los usuarios que están conectados en ese momento, pero es un efecto imperceptible.

¿Puedo optimizar la base de datos si mi hosting es compartido?

Sí, puedes hacer la mayoría de las técnicas que hemos visto, como la limpieza de datos y la optimización de tablas desde el panel de PrestaShop. Lo que no podrás hacer es tocar el archivo de configuración de MySQL, porque no tienes acceso al servidor.

¿Qué es mejor, InnoDB o MyISAM?

Para PrestaShop, siempre InnoDB. Es más robusto, soporta transacciones y bloqueos a nivel de fila, lo que mejora el rendimiento en tiendas con muchos pedidos simultáneos.

¿Un módulo de caché es imprescindible?

No es imprescindible, pero es altamente recomendable. Si tu tienda tiene más de 100 visitas al día, notarás una mejora significativa en la velocidad de carga.

Mi hosting usa Syspanel, ¿cómo accedo a la base de datos?

Para acceder a la base de datos desde Syspanel, primero inicia sesión en tu panel de control (recuerda que el puerto de acceso es el 2106). Luego, busca la sección de "Bases de datos" y haz clic en "phpMyAdmin". Desde ahí podrás ejecutar todas las consultas y optimizaciones que necesites.

Conclusión: tu tienda merece ir rápida

Optimizar la base de datos MySQL de tu PrestaShop no es una tarea de una sola vez, sino un hábito que debes incorporar a tu rutina. Los beneficios son claros: una tienda más rápida, una mejor experiencia de usuario y un mejor posicionamiento en Google. No necesitas ser un gurú de la programación, solo seguir los pasos que te he explicado y ser constante.

Empieza hoy mismo con la limpieza de sesiones y la optimización de tablas. Son dos acciones simples que te darán una satisfacción inmediata. Y si te atreves con el cambio a InnoDB y la configuración de Redis, tu tienda pasará de ir en bicicleta a ir en un coche deportivo. Tu futuro yo (y tus clientes) te lo agradecerán.

¿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