I use a notifications
table and a subnotifications
table, and I am also using queues so it runs in the background when a user posts something. When a user has 10 followers and they create a post, the notifications
table gets a single entry which includes the post data for the notification, and the subnotifications
table gets 10 entries (one subnotification per follower, each referring to the id of the notification, so we don't have to repeat the notification data 10 times, with a read_at
to know if it was read or not by that follower).
This is quick and works great without any issues. However, when testing with 1 million followers, it takes about ~6 hours to insert the subnotifications for one post! This of course is not acceptable, as it is takes too long to insert 1 million subnotifications, one per follower. Imagine that same user posts 10 posts, that'll be like ~60 hours of inserting and 10 million subnotification rows.
I just want followers to know there is a new post if they didn't read it yet. Is there a better, more efficient way that scales?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire