Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 21 Mayo 2021, 03:47 am



Título: [Pregunta]: Optimizar tabla notificaciones.
Publicado por: Leguim en 21 Mayo 2021, 03:47 am
Básicamente tengo una tabla en mi base de datos que almacenará todas las notificaciones que pudiera llegar a tener cada usuario.
Se me ocurrió una idea para optimizar esta tabla en específico que sería que al llegar a las 1.000 notificaciones ya no pueda seguir almacenando más por lo menos para ese usuario.

Quiero decir, tengo 1.000 notificaciones y cuando se agregue una nueva notificación se va a eliminar la más vieja. Seguiremos con 1.000 notificaciones, independientemente si estén vistas o no.

Personalmente me parece un poco exagerado 1.000 registros, yo haría 300 o 150. ¿Qué opinan?


Título: Re: [Pregunta]: Optimizar tabla notificaciones.
Publicado por: Serapis en 21 Mayo 2021, 13:35 pm
Más interesante que fijar una cantidad, es fijar una antigüedad.

Por ejemplo almacenas las notificaciones durante 1 mes... 15, 10, 7... días. Puede ser un valor dependiente de las notificaciones diarias medias que que tenga un usuario. Un usuario con muy pocas notificaciones, podría mantenérselo durante 1 mes... los usuarios con notificaciones muy activas, quizás baste mantenerlas una semana.

Lo importante es considerar que nadie tendrá interés (habitualmente) en consultar una notificación de 1 mes atrás si entre esa y la última median 5000 notificaciones, en cambio es algo tolerable para alguien que solo haya recibido 20 notificaciones en ese mes.

También puede shacerlo mixto, eliminar lo que sobrepase cierto número de notificaciones o cierta antigüedad aunque no se alcance esa cantidad.

...y preferiblemente a eliminar solo una, borra la mitad más vieja cada vez. Si solo borras una cuando esté la bandeja llena, tendrás que constantemente se estarán borrando notificaciones, si hay mucha actividad, la base de datos no tendrá 'descanso'.

Con algo de prueba y error, acabarás encontrando un punto que puedas considerar acertado...