¿Cómo limpio carritos antiguos, logs y estadísticas de una base de datos PrestaShop?

Pregunta publicada 269 vistas

Con el tiempo, una base de datos PrestaShop se llena de datos que ya no necesitas: carritos abandonados, filas huérfanas de carrito, precios específicos y reglas de carrito caducadas, registros antiguos de conexiones e invitados, estadísticas de búsqueda, logs de correo y 404, vistas de página e hilos de cliente cerrados. Si no se controlan, esas tablas ralentizan las consultas y agrandan las copias de seguridad. Para limpiarlas de forma segura, usa Cleanup Revolution: agrupa cada limpieza en tareas con nombre, cuenta las filas afectadas antes de eliminar, soporta vistas previas dry-run por defecto y registra ejecuciones reales de eliminación en el historial de limpieza. Empieza con carritos abandonados de más de 30 días y estadísticas antiguas de búsqueda/conexión, revisa los recuentos de la vista previa y luego elimina por lotes. Haz siempre una copia de seguridad de la base de datos primero. Para mantenimiento continuo, programa las tareas en lugar de ejecutarlas a mano; consulta nuestra guía de rendimiento de PrestaShop.

Vista previa dry-run de Cleanup Revolution con recuento de tareas
Cleanup Revolution - vista previa dry-run con las tareas de limpieza detectadas.

Before any real cleanup, make a fresh database backup and run the module preview first. Do not delete rows manually with SQL; use Cleanup Revolution's dry-run counts, review the affected tasks, then run the cleanup from the module in controlled batches.

mysqldump -u db_user -p db_name > prestashop-before-cleanup.sql

La configuración predeterminada es deliberadamente conservadora: dry run está activado por defecto, modo papelera está activado, los carritos abandonados usan 30 días por defecto, muchos logs/estadísticas usan 90 días, los hilos de cliente cerrados usan 180 días, las cuentas vacías usan 365 días, y el motor usa tamaños de lote por tarea más un límite total de 50000. Una tarea sin filas que eliminar se omite en el runner masivo, y la eliminación real ocurre por lotes en lugar de como una sola sentencia enorme.

Hay un detalle de log de auditoría importante: las ejecuciones dry-run devuelven el recuento afectado antes de llamar a MPRCleanupLog::record(), así que las vistas previas dry-run no se escriben en el historial de limpieza. Las limpiezas reales de base de datos se registran con dry_run = 0. Las acciones manuales del Back Office llaman a DatabaseCleanupEngine::executeTask(..., $employeeID) o a DatabaseCleanupEngine::executeAll($dryRun, $employeeID), por lo que usan el valor predeterminado trigger_type = manual y registran el ID del empleado cuando está disponible. La limpieza programada de la base de datos llama a MPRCleanupRevolution::cronDBCleanup(), que pasa DatabaseCleanupEngine::executeAll(false, null, 'cron'); por tanto, esas filas del registro guardan trigger_type = cron sin ID de empleado.

El motor de limpieza de base de datos incluye tareas con nombre para carritos abandonados, productos huérfanos de carrito, estadísticas de búsqueda, precios específicos caducados, reglas de carrito caducadas con cantidad cero, logs antiguos, conexiones antiguas, filas huérfanas de conexión, invitados antiguos, logs de correo, logs 404, vistas de página, hilos de cliente cerrados y caché de referentes. También tiene limpiezas comerciales de mayor riesgo como cuentas de invitado sin pedidos, direcciones huérfanas y cuentas registradas antiguas sin pedidos ni carritos recientes. Los valores predeterminados de cron dividen el trabajo en ventanas de limpieza de base de datos, limpieza de archivos y optimización de tablas, para que puedas automatizar el mantenimiento sin ejecutar todas las operaciones pesadas a la vez.

¿Le resultó útil esta respuesta?

Productos relacionados

Cleanup Revolution
299,00 €

¿Todavía tienes preguntas?

¿No encuentras lo que buscas? Envíanos tu pregunta y te responderemos.

Cargando...
Volver arriba