Página 1 de 1

Eliminar registros periódicamente

NotaPublicado: 2009-09-18 19:46 @865
por bAsTeR
Me preguntaba cómo puedo lograr que en mi base de datos sólo estén los registros de los últimos 3 días.

Utilizo perl-CGI para mi aplicación, y pensaba en poner un script al iniciar sesión y checar cada vez que alguien se loguee para ver si hay registros de más de 3 días para así eliminarlos, pero creo que eso no sería lo más óptimo.

¿Alguien tiene una mejor idea?

Gracias

Re: Eliminar registros periodicamente

NotaPublicado: 2009-09-19 04:45 @240
por explorer
Puede que no sea lo más óptimo, pero funciona.

Así que... ¡a otra cosa!

Piensa solo en optimizar cuando sea crítico en cuanto a consumo de recursos de la máquina. Por ejemplo, no es lo mismo realizar esta operación 50 veces a la hora que 50.000. En el segundo caso sería interesante hacerlo de forma mucho más espaciada.

Una posible forma de optimización sería la de ejecutar el proceso de limpieza cuando se diese alguna condición más o menos periódica. Por ejemplo:
* El usuario ha hecho la petición en el segundo 42 de este minuto
* El usuario tiene un número de registro que acaba en 0
* Por algún sitio llevo un contador de actividad, así que hago limpieza por cada 100 vueltas de ese contador
* La IP de conexión del usuario es múltiplo de 42
etc. etc.

Eso sí, harás el proceso de limpieza al final del cgi, una vez que le has enviado toda la información al usuario. Así, él no notará nada.

Re: Eliminar registros periódicamente

NotaPublicado: 2009-09-20 22:47 @991
por bAsTeR
Gracias, y como siempre muy buenas respuestas.

Lo pondré en práctica y trataré de optimizarlo de alguna manera.

Gracias