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

Cómo optimizar y acelerar las consultas de tu base de datos en PrestaShop

Actualizado el 18 de febrero de 2026

¿Tu tienda PrestaShop va lenta? Si notas que las páginas tardan en cargar, que el panel de administración se congela o que las fichas de producto aparecen con retraso, es muy probable que el problema esté en las consultas a la base de datos. No te preocupes, no necesitas ser un gurú de la programación para solucionarlo. En esta guía te explico paso a paso cómo optimizar y acelerar las consultas de tu base de datos en PrestaShop para que tu tienda vuele.

Un ecommerce lento no solo frustra a tus clientes, sino que también te penaliza en el posicionamiento web (SEO). Google valora mucho la velocidad de carga, y si tu base de datos es un cuello de botella, tu tienda perderá posiciones en los resultados de búsqueda. Vamos a atacar el problema de raíz.

¿Por qué mi PrestaShop va lento? El origen del problema

Antes de lanzarnos a tocar nada, es importante entender qué está pasando. PrestaShop utiliza MySQL (o MariaDB) para guardar absolutamente toda la información: productos, pedidos, clientes, precios, combinaciones, etc. Cada vez que un visitante entra en tu tienda, el servidor realiza una serie de consultas a la base de datos para mostrar la información.

El problema surge cuando estas consultas son ineficientes, demasiado complejas o se ejecutan en una tabla que está llena de datos "basura" o sin índices. Esto provoca que el servidor tarde más en responder, y por tanto, tu tienda se ralentiza. Hablamos de consultas lentas prestashop cuando el tiempo de ejecución supera unos pocos segundos, algo inaceptable para la experiencia de usuario.

Paso 1: Activa el modo mantenimiento y haz una copia de seguridad

Este es el paso más importante y el que nunca debes saltarte. Antes de hacer cualquier cambio en tu base de datos, debes protegerte.

  1. Ve a tu panel de administración de PrestaShop.
  2. En el menú superior, entra en Parámetros avanzados > Mantenimiento.
  3. Activa el modo mantenimiento (pon el interruptor en "Sí") para que tus clientes no vean errores mientras trabajas.
  4. Ahora, accede a tu panel de control de hosting (cPanel, Plesk o el que uses) y busca la sección de Base de Datos MySQL.
  5. Utiliza la herramienta phpMyAdmin para exportar tu base de datos completa. Esto te dará un archivo .sql con el que podrás restaurar todo si algo sale mal.

[WARNING] No toques absolutamente nada sin tener una copia de seguridad reciente. Un mal movimiento puede borrar pedidos o productos para siempre.

Paso 2: Activa el caché de MySQL en PrestaShop

PrestaShop tiene un sistema de caché integrado, pero a menudo está desactivado por defecto. Activar el caché es una de las formas más rápidas y efectivas de acelerar prestashop mysql.

  1. Ve a Parámetros avanzados > Rendimiento.
  2. En la sección Caché, verás un desplegable. Selecciona "Caché de archivos".
  3. Guarda los cambios.

¿Qué hace esto? Básicamente, guarda una "foto" de las consultas más comunes para no tener que volver a preguntarle a la base de datos cada vez. Es como tener un asistente que ya sabe la respuesta antes de que le preguntes. Esto reduce drásticamente la carga del servidor.

Paso 3: Optimiza las tablas de tu base de datos

Con el tiempo, las tablas de tu base de datos se fragmentan. Imagina un archivador donde vas metiendo papeles sin orden; al final, cuesta más encontrar uno. Optimizar las tablas es como reorganizar ese archivador.

Puedes hacerlo de dos maneras:

A. Desde phpMyAdmin (Manual)

  1. Accede a tu panel de control de hosting y abre phpMyAdmin.
  2. Selecciona la base de datos de tu PrestaShop (en el menú lateral izquierdo).
  3. Verás un montón de tablas (todas empiezan con el prefijo ps_ o el que hayas configurado).
  4. Haz clic en "Marcar todas" en la parte inferior.
  5. En el desplegable que dice "Con seleccionadas", elige "Optimizar tablas".

Este proceso es seguro y no borra datos. Simplemente compacta la información y actualiza los índices, lo que acelera las búsquedas.

B. Con un comando SQL (Avanzado)

Si te sientes cómodo, puedes ejecutar este comando directamente en la pestaña SQL de phpMyAdmin:

OPTIMIZE TABLE `ps_product`, `ps_product_attribute`, `ps_orders`, `ps_customer`;

[TIP] Puedes añadir más tablas a la lista separándolas con comas. Las más importantes suelen ser ps_connections, ps_connections_page, ps_guest, ps_search_word, que acumulan mucha basura con el tiempo.

Paso 4: La limpieza profunda: elimina datos obsoletos

PrestaShop guarda mucha información que no necesitas y que ralentiza todo. Los principales culpables son los registros de conexiones y las palabras de búsqueda antiguas.

  1. Ve a Informes > Estadísticas en tu panel de administración.
  2. En la parte superior, verás un botón que dice "Vaciar" o "Limpiar" en el módulo de estadísticas.
  3. Pulsa el botón para borrar las conexiones antiguas (las visitas de hace meses no te sirven de nada).
  4. También borra las búsquedas de clientes antiguas. Esto libera muchísimo espacio en la tabla ps_search_word, que suele ser una de las que más engorda.

[INFO] Si tienes una tienda con muchos productos, también es buena idea revisar la tabla ps_log (si existe) o cualquier módulo de logs que tengas, ya que los archivos de registro pueden crecer sin control.

Paso 5: Revisa y optimiza los índices de tus tablas

Los índices son como las "páginas amarillas" de la base de datos. Sin ellos, MySQL tiene que leer toda la tabla para encontrar un dato. Con ellos, va directo al grano. A veces, PrestaShop no crea los índices más eficientes.

  1. Ve a phpMyAdmin y selecciona tu base de datos.
  2. Entra en la tabla ps_product (o la que quieras revisar).
  3. Haz clic en la pestaña "Estructura".
  4. En la parte inferior, verás el apartado de "Índices".
  5. Asegúrate de que existen índices en campos que se usan mucho en las consultas, como id_category_default, active, price, reference, etc.

Si no sabes qué índices añadir, no te preocupes. Hay una herramienta gratuita que te lo dice: MySQL Performance Schema o el módulo de PrestaShop "Reindexador" (aunque este último es más antiguo). Lo más sencillo es usar phpMyAdmin y en la pestaña SQL ejecutar:

ALTER TABLE `ps_product` ADD INDEX `idx_active` (`active`);

[WARNING] Añadir índices en exceso también puede ralentizar la escritura de datos (cuando haces un pedido, por ejemplo). Añade solo los que sean realmente necesarios y que veas que se repiten en las consultas lentas.

Paso 6: Identifica y corrige las consultas lentas (MySQL Slow Query Log)

Esta es la parte más técnica, pero te aseguro que es muy reveladora. Se trata de ver qué consultas son las que más tiempo tardan.

  1. Accede a tu panel de control de hosting y busca la sección de "Registros de errores" o "Slow Query Log".
  2. Si tu hosting lo permite, activa el registro de consultas lentas (por ejemplo, aquellas que tardan más de 2 segundos).
  3. Deja que la tienda funcione con normalidad durante unas horas o un día.
  4. Vuelve a revisar el log. Verás una lista de consultas SQL con el tiempo que tardaron.

¿Qué haces con esa lista? Generalmente, verás consultas que hacen un SELECT masivo con muchos JOIN. La solución más común es desactivar los módulos que generan esas consultas. Muchas veces, los módulos de terceros (sliders, banners, etc.) son los culpables de las consultas lentas prestashop.

Paso 7: Desactiva los módulos que no uses

Esta es una de las reglas de oro de PrestaShop. Cada módulo activo, aunque no lo veas, ejecuta consultas en cada página.

  1. Ve a Módulos > Gestor de módulos.
  2. Revisa la lista y desactiva todo lo que no estés usando.
  3. Presta especial atención a los módulos de estadísticas, comparadores de precios o los que hacen "crawling" de tu tienda.

Un truco muy efectivo es desactivar el módulo de estadísticas de PrestaShop (si no lo usas a fondo), ya que escribe constantemente en la base de datos con cada visita, generando una carga enorme.

Paso 8: Ajusta la configuración de MySQL (my.cnf o my.ini)

Si tienes acceso a la configuración del servidor (en un VPS o dedicado), puedes hacer ajustes finos. En un hosting compartido, esto no es posible, pero puedes preguntar a tu proveedor si tienen ya una configuración optimizada.

Algunos parámetros clave son:

  • query_cache_size: El tamaño de la caché de consultas. Aumentarlo puede ayudar a que las consultas repetitivas sean más rápidas.
  • tmp_table_size y max_heap_table_size: Aumentar estos valores permite que las consultas temporales no se guarden en el disco duro (que es más lento) sino en la memoria RAM.
  • innodb_buffer_pool_size: Este es el más importante. Debe ser el 70-80% de la memoria RAM disponible si solo tienes MySQL en el servidor.

[TIP] Si usas un panel de control como Syspanel (accediendo por el puerto 2106), es posible que tengas una sección para configurar MySQL de forma gráfica. Si no, deberás editar el archivo de configuración manualmente con un editor de texto.

Paso 9: Mantén tu PrestaShop actualizado

Cada versión de PrestaShop viene con mejoras de rendimiento y corrección de errores en las consultas a la base de datos. Mantener tu tienda y los módulos actualizados es una forma pasiva pero muy eficaz de optimizar base de datos prestashop.

Preguntas Frecuentes (FAQ)

¿Cuánto tiempo tarda en notarse la mejora?
Si haces los pasos 2, 3 y 4, notarás la diferencia casi al instante. La limpieza de tablas y el caché son inmediatos.

¿Puedo romper mi tienda si me equivoco?
Sí, por eso es vital la copia de seguridad. Si ejecutas un comando SQL erróneo, puedes perder datos. Si no estás seguro, limítate a los pasos desde el panel de administración (caché y limpieza de estadísticas).

Mi hosting es compartido, ¿puedo hacer el paso 8?
No, en la mayoría de los casos no tendrás acceso al archivo de configuración. Te recomiendo que contactes con el soporte de tu hosting y les pidas que revisen la configuración de MySQL para tu cuenta.

¿Qué es el prefijo de las tablas?
Es el texto que va antes del nombre de cada tabla (ej: ps_). Puedes cambiarlo durante la instalación, pero es raro. Lo verás claro en phpMyAdmin.

¿Sirve de algo desactivar el caché de Smarty?
El caché de Smarty es para las plantillas (HTML/CSS), no para las consultas SQL. Es un complemento, pero no soluciona el problema de base de datos. Activa ambos si puedes.

Conclusión: Una tienda rápida es una tienda que vende

Optimizar la base de datos de PrestaShop no es un lujo, es una necesidad. Siguiendo estos pasos, no solo mejorarás la velocidad de carga, sino que también mejorarás tu posicionamiento en Google y la experiencia de tus clientes. Empieza por los pasos más sencillos (caché y limpieza) y ve avanzando hacia los más técnicos si el problema persiste. Verás que con un poco de mantenimiento regular, tu tienda irá como un tiro.

Recuerda que la constancia es clave. Programa una limpieza de tablas y estadísticas una vez al mes para mantener tu base de datos ligera y eficiente. Tu futura cartera de clientes 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