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

Cómo optimizar una base de datos en PrestaShop (Tablas y rendimiento)

Actualizado el 23 de mayo de 2026

¿Por qué es importante optimizar la base de datos de PrestaShop?

Tu tienda PrestaShop almacena absolutamente todo en una base de datos MySQL: productos, pedidos, clientes, precios, combinaciones, sesiones, mensajes y un largo etcétera. Con el tiempo, esta base de datos se convierte en un archivo gigante lleno de información basura, registros obsoletos y tablas fragmentadas. El resultado es un PrestaShop lento, que tarda en cargar, que da errores de conexión a la base de datos y que castiga tu posicionamiento SEO.

Cuando hablamos de optimizar base de datos prestashop, no nos referimos solo a hacerla más pequeña, sino a hacerla más eficiente. Una base de datos optimizada responde más rápido a las consultas, reduce el tiempo de carga de las páginas y mejora la experiencia de usuario. Y eso, Google lo premia con mejores posiciones. Por eso, el mantenimiento prestashop no es un lujo, es una necesidad si quieres que tu tienda funcione correctamente.

A lo largo de esta guía, te explicaré paso a paso cómo optimizar las tablas mysql prestashop, qué herramientas usar, qué precauciones tomar y con qué frecuencia deberías hacerlo. No necesitas ser un experto en bases de datos, solo seguir las instrucciones con calma.


¿Qué causa que la base de datos de PrestaShop sea lenta?

Antes de lanzarnos a optimizar, es importante entender qué está ralentizando tu tienda. Estos son los principales culpables:

  • Tablas fragmentadas: Cuando se insertan, modifican o eliminan registros, los datos se dispersan físicamente en el disco. Esto hace que las consultas sean más lentas.
  • Registros obsoletos: PrestaShop acumula sesiones de visitantes antiguas, carritos abandonados, mensajes de error, logs y conexiones que ya no sirven para nada.
  • Índices innecesarios o ausentes: Si las tablas no tienen índices bien configurados, las búsquedas tardan muchísimo más.
  • Datos de caché acumulados: Aunque la caché no está en la base de datos directamente, los datos de caché mal gestionados pueden generar consultas redundantes.
  • Tablas de logs gigantescas: Las tablas ps_log o ps_connections pueden crecer de forma desmesurada sin que te des cuenta.

El problema es que muchos usuarios novatos no saben ni por dónde empezar. Y eso es totalmente normal. Vamos a desglosarlo todo en pasos sencillos.


Antes de empezar: haz una copia de seguridad

Este es el paso más importante de todos. Si algo sale mal durante la optimización, podrías perder datos críticos. No te saltes este paso jamás.

¿Cómo hacer una copia de seguridad de tu base de datos?

  1. Accede a tu panel de control de hosting. Si usas Syspanel, recuerda que el puerto de acceso es el 2106. Dentro de Syspanel, busca la sección de "Bases de datos" o "MySQL".
  2. Exporta la base de datos. La mayoría de los paneles de control incluyen una opción para exportar la base de datos en formato .sql. Si no la encuentras, puedes usar phpMyAdmin.
  3. Descarga el archivo a tu ordenador. Guárdalo en un lugar seguro, preferiblemente en la nube o en un disco externo.
  4. Opcional pero recomendable: haz también una copia de seguridad de los archivos de tu tienda (carpeta public_html o similar). Así, si algo falla, podrás restaurar todo el sistema.

[WARNING] No optimices nunca una base de datos sin una copia de seguridad reciente. Un simple error en un comando SQL puede dejar tu tienda inaccesible durante horas.


Paso 1: Activar el modo mantenimiento de PrestaShop

Antes de tocar nada, pon tu tienda en modo mantenimiento. Esto evitará que los clientes entren mientras estás trabajando y que se generen nuevos registros que interfieran con la optimización.

  1. Ve al Panel de administración de PrestaShop.
  2. Entra en Parámetros avanzados → Mantenimiento.
  3. Activa la opción "Activar el modo mantenimiento".
  4. Guarda los cambios.

Ahora, tu tienda mostrará un mensaje de "en mantenimiento" a los visitantes, pero tú podrás seguir accediendo al panel de administración.


Paso 2: Eliminar datos innecesarios desde el panel de PrestaShop

PrestaShop tiene herramientas nativas para limpiar datos que no necesitas. Aunque no son tan profundas como una optimización manual de las tablas mysql prestashop, son un buen punto de partida.

Qué puedes limpiar desde el panel:

  • Carritos abandonados: Entra en Ventas → Carritos y elimina los que tengan más de 30 días.
  • Sesiones de clientes: En Parámetros avanzados → Rendimiento, verás la opción de "Limpiar sesiones". Hazlo con cuidado, pero es seguro.
  • Logs y mensajes: En Parámetros avanzados → Registros, puedes vaciar los logs antiguos.
  • Catálogo de productos: Si tienes productos desactivados que no piensas usar más, elimínalos definitivamente.
  • Clientes sin pedidos: Puedes eliminar clientes que se registraron pero nunca compraron y que llevan más de un año inactivos.

[INFO] Esta limpieza manual no solo reduce el tamaño de la base de datos, sino que también facilita la gestión diaria de tu tienda. Es una parte esencial del mantenimiento prestashop.


Paso 3: Optimizar las tablas de PrestaShop con phpMyAdmin

Ahora entramos en materia técnica. phpMyAdmin es una herramienta gratuita que viene incluida en la mayoría de los paneles de hosting. Te permite ejecutar comandos SQL directamente sobre tu base de datos.

¿Cómo acceder a phpMyAdmin?

  1. Entra en tu panel de control (Syspanel, puerto 2106).
  2. Busca la sección de "Bases de datos" o "MySQL".
  3. Pulsa en "phpMyAdmin" junto a la base de datos de tu tienda.

El comando mágico: OPTIMIZE TABLE

El comando OPTIMIZE TABLE repara y desfragmenta las tablas. Es una de las formas más efectivas de optimizar tablas prestashop.

Puedes optimizar todas las tablas de tu base de datos con un solo comando. En la pestaña SQL de phpMyAdmin, escribe:

OPTIMIZE TABLE `ps_access`, `ps_connections`, `ps_cart`, `ps_customer`, `ps_orders`, `ps_product`, `ps_product_attribute`, `ps_stock_available`, `ps_log`;

Pero si quieres optimizar todas las tablas sin tener que listarlas una a una, usa este comando:

SELECT CONCAT('OPTIMIZE TABLE ', TABLE_NAME, ';') FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'tu_base_de_datos';

Este comando te generará una lista de comandos OPTIMIZE TABLE para cada tabla. Copia el resultado y ejecútalo.

[TIP] No te asustes si la tabla ps_log es enorme. Es normal. Pero si quieres reducirla, puedes vaciarla antes de optimizarla con el comando TRUNCATE TABLE ps_log;.

¿Qué hace exactamente OPTIMIZE TABLE?

  • Reorganiza los datos físicamente.
  • Libera espacio no utilizado.
  • Actualiza las estadísticas de las tablas, lo que ayuda al motor MySQL a tomar mejores decisiones de ejecución.

Paso 4: Reparar tablas corruptas

A veces, las tablas se corrompen debido a cortes de luz, cierres inesperados del servidor o errores de escritura. Si notas que tu tienda da errores extraños, es posible que tengas tablas corruptas.

Cómo reparar tablas en phpMyAdmin:

  1. Selecciona la base de datos de PrestaShop.
  2. Marca todas las tablas (o las que quieras revisar).
  3. En el menú desplegable "Con selección", elige "Reparar tabla".

Esto ejecutará REPAIR TABLE, que intenta arreglar cualquier daño estructural.

[WARNING] Reparar tablas puede tardar si la base de datos es grande. No interrumpas el proceso, ya que podrías empeorar el problema.


Paso 5: Eliminar datos basura de forma segura con SQL

Aquí es donde realmente notas la diferencia en el rendimiento. Ejecutar estos comandos SQL te ayudará a limpiar los datos que PrestaShop no limpia automáticamente.

Limpiar sesiones antiguas

Las sesiones de visitantes se acumulan rápidamente. Elimina las que tengan más de 7 días:

DELETE FROM ps_connections WHERE date_add < NOW() - INTERVAL 7 DAY;
DELETE FROM ps_connections_source WHERE date_add < NOW() - INTERVAL 7 DAY;
DELETE FROM ps_guest WHERE id_guest NOT IN (SELECT id_guest FROM ps_connections);

Limpiar carritos abandonados

Los carritos que no se han convertido en pedidos en 30 días son basura:

DELETE FROM ps_cart WHERE id_cart NOT IN (SELECT id_cart FROM ps_orders) AND date_add < NOW() - INTERVAL 30 DAY;

Limpiar mensajes y logs

TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_mail;
TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_source;

[TIP] Antes de truncar, asegúrate de que no necesitas esos datos para algún análisis o informe. Si dudas, haz una copia de seguridad de esas tablas antes de vaciarlas.


Paso 6: Optimizar los índices de las tablas

Los índices son como el índice de un libro: ayudan a MySQL a encontrar datos mucho más rápido. PrestaShop ya crea índices automáticamente, pero a veces no son suficientes.

Cómo añadir índices manualmente

En phpMyAdmin, selecciona una tabla (por ejemplo, ps_orders) y ve a la pestaña "Estructura". Ahí puedes ver los índices existentes y añadir nuevos.

Un buen índice para una tienda PrestaShop sería sobre las columnas que usas frecuentemente en búsquedas, como date_add, id_customer, id_product o reference.

Ejemplo de comando SQL para añadir un índice:

ALTER TABLE ps_orders ADD INDEX idx_date_add (date_add);

[INFO] No añadas índices por añadir. Demasiados índices también ralentizan las inserciones y actualizaciones. Solo añade los que realmente necesites.


Paso 7: Configurar correctamente la caché de PrestaShop

La caché no es exactamente una optimización de la base de datos, pero reduce muchísimo las consultas a MySQL. Si tu base de datos es lenta, la caché te salvará la vida.

Configuración recomendada:

  1. Ve a Parámetros avanzados → Rendimiento.
  2. En "Caché", activa la opción "Sí, usar caché".
  3. Selecciona "Memcached" o "APCu" si tu hosting lo soporta. Si no, usa "Sistema de archivos".
  4. Activa también la "Combinación de JavaScript" y la "Compresión de CSS", aunque esto no afecta a la base de datos directamente, sí mejora el rendimiento global.

Paso 8: Usar herramientas externas para optimizar la base de datos

Si no te sientes cómodo con SQL, existen módulos y herramientas que hacen el trabajo por ti.

Módulos recomendados para PrestaShop:

  • PrestaCleaner: limpia datos basura de forma segura.
  • Advanced Database Tools: permite optimizar tablas desde el panel de administración.
  • MySQL Performance: monitoriza y optimiza consultas.

También puedes usar herramientas como MySQLTuner (desde la terminal) o phpMyAdmin para obtener un diagnóstico completo.


Paso 9: Programar el mantenimiento periódico

La optimización no es un evento único. Debes hacerla de forma regular para mantener tu tienda rápida.

Frecuencia recomendada:

  • Semanalmente: Vaciar logs y sesiones antiguas.
  • Mensualmente: Optimizar tablas con OPTIMIZE TABLE.
  • Cada 3 meses: Revisar índices y eliminar datos obsoletos.
  • Cada 6 meses: Revisar la configuración de caché y el rendimiento general.

[TIP] Puedes programar tareas cron en tu hosting para que ejecuten comandos SQL automáticamente. En Syspanel (puerto 2106), busca la sección de "Tareas programadas" o "Cron Jobs".


Preguntas frecuentes (FAQ)

¿Es seguro optimizar la base de datos de PrestaShop?

Sí, siempre que hagas una copia de seguridad previa y sigas los pasos con cuidado. Los comandos que te he mostrado son estándar y no deberían causar problemas.

¿Cuánto tiempo tarda la optimización?

Depende del tamaño de tu base de datos. Una tienda pequeña puede tardar unos segundos; una tienda grande, varios minutos. No desesperes.

¿Qué hago si mi base de datos es demasiado grande (más de 1 GB)?

En ese caso, te recomiendo contratar un especialista o usar una herramienta profesional. También puedes optimizar tabla por tabla, empezando por las más grandes.

¿Puedo optimizar la base de datos sin acceso a phpMyAdmin?

Sí, algunos módulos de PrestaShop lo permiten. Pero phpMyAdmin es la forma más directa y completa.

¿Optimizar la base de datos mejora mi SEO?

Indirectamente, sí. Una tienda más rápida mejora la experiencia de usuario, reduce la tasa de rebote y aumenta el tiempo de permanencia. Todo esto son señales positivas para Google.


Conclusión final

Optimizar la base de datos de PrestaShop no es un proceso complicado, pero requiere paciencia y método. Empieza por la limpieza manual, sigue con OPTIMIZE TABLE y termina con una buena configuración de caché. Si haces esto de forma periódica, notarás una mejora significativa en la velocidad de tu tienda y, por tanto, en tu posicionamiento SEO.

Recuerda siempre tener una copia de seguridad a mano, trabajar con calma y no tocar nada que no entiendas. Y si tienes dudas, busca ayuda profesional. Una base de datos sana es la base de una tienda online exitosa.

[TIP] La próxima vez que tu tienda vaya lenta, no mires solo el hosting. La mayoría de las veces, el problema está en una base de datos descuidada. Con estos consejos, ya sabes cómo ponerle solución. ¡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