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

Cómo optimizar bases de datos MySQL en PrestaShop para mejorar rendimiento

Actualizado el 8 de enero de 2026

¿Tu tienda PrestaShop va lenta? Uno de los culpables más comunes (y silenciosos) es una base de datos MySQL hinchada, llena de basura, registros antiguos y tablas sin optimizar. En este artículo te voy a explicar, paso a paso y en un lenguaje muy sencillo, cómo optimizar base de datos PrestaShop para que tu tienda vuele. Hablaremos de limpiar, reparar, indexar y configurar tu MySQL PrestaShop rendimiento como un auténtico profesional.

Vamos a desglosar todo el proceso, desde lo más básico hasta técnicas un poco más avanzadas, pero siempre pensando en que lo puedas hacer tú mismo, sin ser un experto en servidores. Al final, tendrás una guía completa para mejorar velocidad PrestaShop y ofrecer una experiencia de compra mucho más rápida a tus clientes.

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

PrestaShop es un CMS potente, pero con el tiempo acumula mucha información innecesaria. Cada vez que un cliente visita tu tienda, busca un producto, hace un pedido o deja un carrito abandonado, se generan registros en la base de datos. Si no realizas una limpieza base de datos PrestaShop periódica, esa información se acumula y hace que las consultas sean más lentas.

Una base de datos pesada y desorganizada provoca:

  • Tiempos de carga de página más largos.
  • Mayor consumo de recursos del servidor (CPU y RAM).
  • Lentitud en el panel de administración.
  • Peor experiencia de usuario y menor tasa de conversión.

Por eso, la PrestaShop optimización debe incluir siempre un mantenimiento regular de MySQL. No te preocupes, no es tan complicado como parece.

Primeros pasos: haz una copia de seguridad (siempre)

Antes de tocar nada, haz una copia de seguridad completa de tu base de datos. Cualquier error puede dejarte la tienda inservible. Si usas un panel como Syspanel (accede por el puerto 2106), puedes hacerlo desde la sección de bases de datos. También puedes usar phpMyAdmin o herramientas como mysqldump.

[WARNING] Nunca trabajes directamente sobre la base de datos en producción sin un backup reciente. Un simple comando mal escrito puede borrar información crítica de tus pedidos o clientes.

1. Limpiar registros innecesarios en PrestaShop

El primer paso para limpiar base de datos PrestaShop es eliminar toda la basura que el sistema acumula. PrestaShop guarda muchos datos temporales que no necesitas.

1.1. Eliminar carritos abandonados antiguos

Los carritos abandonados ocupan espacio y no aportan valor si son muy viejos. Puedes borrar los que tengan más de 30 días (o el tiempo que consideres). En phpMyAdmin, selecciona tu base de datos y ejecuta esta consulta SQL:

DELETE FROM ps_cart WHERE date_upd < DATE_SUB(NOW(), INTERVAL 30 DAY);

[TIP] Cambia ps_ por el prefijo de tus tablas si es diferente. Lo normal es que sea ps_ o el que hayas puesto al instalar.

1.2. Borrar sesiones de visitantes antiguas

Las sesiones de usuarios no registrados también se acumulan. Límpialas con:

DELETE FROM ps_guest WHERE last_visit_date < DATE_SUB(NOW(), INTERVAL 30 DAY);
DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);

1.3. Eliminar logs y estadísticas viejas

PrestaShop guarda logs de errores, búsquedas y estadísticas. Si no los usas para análisis, bórralos:

TRUNCATE TABLE ps_log;
TRUNCATE TABLE ps_search_engine;
TRUNCATE TABLE ps_connections_page;

[INFO] TRUNCATE vacía la tabla por completo. Si quieres conservar algunos datos, usa DELETE con condiciones de fecha.

1.4. Limpiar tablas de variaciones y combinaciones huérfanas

A veces, al eliminar productos, quedan registros huérfanos en tablas como ps_product_attribute o ps_stock_available. Puedes eliminarlos con consultas específicas, pero yo te recomiendo usar un módulo de PrestaShop optimización como "Advanced MySQL Optimization" o el propio "Cleaner" de PrestaShop (si está disponible en tu versión).

2. Optimizar tablas MySQL en PrestaShop

Una vez limpias las tablas, toca optimizar su estructura. Esto reorganiza el almacenamiento físico y libera espacio.

2.1. Usar phpMyAdmin para optimizar tablas

Desde phpMyAdmin:

  1. Selecciona tu base de datos.
  2. Marca todas las tablas (clic en "Check All").
  3. En el menú desplegable "Con seleccionados", elige "Optimizar tabla".
  4. Espera a que termine. Verás un mensaje de éxito.

2.2. Usar comandos SQL directos

Si prefieres la consola o tienes acceso SSH, puedes ejecutar:

OPTIMIZE TABLE ps_product;
OPTIMIZE TABLE ps_category;
OPTIMIZE TABLE ps_orders;
-- Repite para las tablas que quieras

O incluso optimizar todas las tablas de una base de datos con un script.

2.3. Programar optimizaciones automáticas

Puedes crear un cron job que ejecute mysqlcheck -o periódicamente. Por ejemplo, cada semana:

mysqlcheck -o --all-databases -u usuario -pcontraseña

[TIP] Si usas Syspanel (puerto 2106), puedes configurar tareas programadas desde su interfaz web. Es muy intuitivo.

3. Indexar correctamente las tablas

Los índices son como el índice de un libro: aceleran las búsquedas. PrestaShop ya crea índices por defecto, pero a veces faltan o están corruptos.

3.1. Verificar índices existentes

En phpMyAdmin, ve a la estructura de una tabla y revisa la pestaña "Índices". Deberías ver al menos un índice PRIMARY y varios KEY.

3.2. Añadir índices faltantes

Las consultas más comunes en PrestaShop son sobre productos, categorías y pedidos. Asegúrate de que estas columnas tengan índice:

  • id_product, id_category, id_order
  • reference (para búsquedas rápidas)
  • date_add, date_upd (para ordenar)

Puedes añadir un índice con:

ALTER TABLE ps_product ADD INDEX idx_reference (reference);

[WARNING] No añadas índices de más, porque ralentizan las inserciones y actualizaciones. Solo los necesarios para las consultas habituales.

4. Configurar MySQL para mejorar el rendimiento

Además de limpiar e indexar, puedes ajustar la configuración de MySQL para que trabaje mejor con PrestaShop.

4.1. Aumentar el tamaño del buffer de InnoDB

PrestaShop usa InnoDB por defecto. El parámetro innodb_buffer_pool_size debería ser al menos el 70% de tu RAM disponible (si solo tienes MySQL en el servidor). En un servidor con 4GB de RAM, pon 3GB.

Edita el archivo my.cnf (normalmente en /etc/mysql/my.cnf o /etc/my.cnf):

[mysqld]
innodb_buffer_pool_size = 3G

Reinicia MySQL:

sudo systemctl restart mysql

4.2. Ajustar el tamaño de la caché de consultas

Aunque en MySQL 8.0 la caché de consultas está obsoleta, en versiones anteriores puedes activarla. Si usas MySQL 5.7, añade:

query_cache_type = 1
query_cache_size = 256M

4.3. Limitar el número de conexiones simultáneas

No necesitas miles de conexiones. Con 100-200 es suficiente para la mayoría de tiendas. Ajusta max_connections en my.cnf.

5. Usar módulos de optimización para PrestaShop

Si no te sientes cómodo con SQL, existen módulos que automatizan gran parte del trabajo. Busca en el marketplace de PrestaShop módulos como:

  • Advanced MySQL Optimization
  • PrestaShop Cleaner
  • Performance Booster

Estos módulos suelen incluir funciones para limpiar base de datos PrestaShop, optimizar tablas y eliminar logs con un solo clic.

[INFO] Antes de instalar cualquier módulo, verifica que sea compatible con tu versión de PrestaShop y lee las reseñas.

6. Mantenimiento periódico: la clave del éxito

No basta con hacerlo una vez. Para mantener un MySQL PrestaShop rendimiento óptimo, programa estas tareas:

  • Semanalmente: Limpiar carritos abandonados, sesiones y logs.
  • Mensualmente: Optimizar tablas y verificar índices.
  • Trimestralmente: Revisar la configuración de MySQL y ajustar buffers.

Puedes automatizar todo con scripts y crons. Si usas Syspanel (puerto 2106), programa tareas desde su panel de "Programador de tareas".

7. Preguntas frecuentes (FAQ)

¿Cuánto espacio puedo liberar al limpiar la base de datos?

Depende del tiempo que lleves sin hacer mantenimiento. He visto tiendas que pasan de 2GB a 500MB después de una buena limpieza. Lo normal es reducir entre un 30% y un 60%.

¿Es seguro ejecutar OPTIMIZE TABLE en producción?

Sí, pero puede bloquear la tabla durante unos segundos. Hazlo en horas de bajo tráfico (por la noche) o usa la herramienta pt-online-schema-change si necesitas cero downtime.

¿Puedo dañar mi tienda si me equivoco en un comando SQL?

Sí, por eso insisto en la copia de seguridad. Siempre prueba primero en un entorno de desarrollo o con una copia de seguridad.

¿Cada cuánto debo optimizar?

Depende del volumen de tu tienda. Si tienes muchos pedidos y visitas, semanalmente. Si es pequeña, cada mes está bien.

¿Los módulos de pago son mejores que hacerlo manual?

No necesariamente. Los módulos ahorran tiempo y reducen errores, pero si sabes SQL, hacerlo manual te da control total. Para usuarios no técnicos, un módulo es más seguro.

Conclusión

Optimizar base de datos PrestaShop no es un lujo, es una necesidad para cualquier tienda que quiera ofrecer una experiencia rápida y profesional. Siguiendo estos pasos –limpiar, optimizar, indexar y configurar– conseguirás un mejorar velocidad PrestaShop notable. Recuerda siempre hacer backup, programar el mantenimiento y, si te surge alguna duda, consultar con tu hosting o con la comunidad.

Ahora que ya sabes cómo hacerlo, ¡ponte manos a la obra y dale velocidad a tu tienda!

¿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