gpt4 book ai didi

mysql - 减少通知系统上的数据库写入或更改认可的数据库?

转载 作者:行者123 更新时间:2023-11-29 06:35:12 24 4
gpt4 key购买 nike

我们有一个网络应用程序,需要向用户发送大量通知(每天超过 1,000,000 通知)。我们使用Laravel和 MySQL 作为数据库。

我循环发送通知的一组用户并将其保存到数据库中。假设我想发送一组 1000 用户。数据将写入 DB 1000 次。正如我所说,我们每天有超过 1,000,000 条通知,这需要大量资源。

解决这个问题的适当方法是什么?

我应该更换为新的数据库系统,例如 MongoDB,还是应该重新设计通知表架构以及保存到数据库的方式?

以下是我的通知表架构。

Laravel notification table structure

PS::我需要将每个通知保存到数据库并需要向用户显示。无法跳过这部分。

最佳答案

如果您要向所有用户发送相同的内容,我建议采用以下方法。

数据库架构

notification_contents (id, content, created_by, created_at, updated_at)

user_notifications (id, user_id, notification_id, status, created_at, updated_at)

当有新的通知要发送时,将其插入到 notification_contents 表中。如果您想自定义内容,可以在内容中使用占位符。例如用户名或电子邮件

然后循环遍历用户,并将其与 user_idnotification_id 一起插入到 user_notifications 表中。如果您想为此实现排队机制,请首先将 status 标志设置为零。

然后编写一个 cron 作业,从 user_notifications 表中获取 x 个用户并将内容发送给他们。您可以将 user_notifications 与 notification_contents 结合起来以获取电子邮件内容。

发送通知后,将status 标志设置为 1。

关于mysql - 减少通知系统上的数据库写入或更改认可的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54303977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com