La base de datos de PrestaShop: tablas que crecen, índices y limpieza segura
Tras unos años, una tienda puede tener millones de filas que no sirven para nada. Te decimos cuáles se pueden limpiar y cuáles no se tocan.
La base de datos de PrestaShop crece con cada visita, no solo con cada pedido. Tras unos años, es habitual encontrar tablas con millones de filas de estadísticas que nadie consulta y que ralentizan las copias de seguridad y algunas pantallas.
Las tablas que más crecen
| Tabla | Qué guarda | ¿Se puede limpiar? |
|---|---|---|
connections, connections_page, connections_source | Visitas para las estadísticas | Sí, lo antiguo |
guest | Un registro por visitante | Con cuidado (los carritos lo referencian) |
page_viewed, statssearch | Estadísticas | Sí, lo antiguo |
log | Registro del back office | Sí, lo antiguo |
cart, cart_product | Carritos, también abandonados | Solo carritos antiguos sin pedido |
mail | Registro de correos enviados | Sí |
Limpieza segura
- Copia de seguridad completa antes de nada.
- Borra por fecha y por lotes, no todo de golpe, para no bloquear la tienda:
DELETE FROM ps_connections
WHERE date_add < NOW() - INTERVAL 12 MONTH
LIMIT 50000;
- Para los carritos, borra solo los que no tienen pedido:
DELETE c FROM ps_cart c
LEFT JOIN ps_orders o ON o.id_cart = c.id_cart
WHERE o.id_order IS NULL
AND c.date_upd < NOW() - INTERVAL 6 MONTH;
Consultas lentas
Activa el registro de consultas lentas del servidor MySQL o MariaDB (slow_query_log) durante un día de tráfico normal. Las consultas que aparecen repetidas suelen venir de un módulo concreto y casi siempre se arreglan con un índice.
Ajustes del servidor
Si gestionas el servidor, el parámetro que más influye es innodb_buffer_pool_size: idealmente, lo bastante grande como para que las tablas de uso diario quepan en memoria. Pero en servidores compartidos o con poca RAM, subirlo sin medida puede dejar al sistema sin memoria: ajústalo al tamaño real de tus datos.
Menos datos, menos problemas
Desactiva las estadísticas que no uses (módulos stats*) y programa la limpieza una vez al mes. Tu base de datos, tus copias y tus migraciones irán más rápidas.