mysql - Node.js 站点上的通知系统使用什么数据库/技术?

标签 mysql node.js mongodb notifications

我希望在我的 Node.js 应用程序中实现通知。我目前使用 mysql 来存储关系数据(用户、提交、评论等)。我仅将 mongodb 用于页面浏览。

要构建通知系统,(从性能角度来看)使用 mongodb 与 MySQL 是否更有意义?

此外,向用户显示新通知的惯例是什么?起初,我以为我会有一个通知图标,他们单击它,它会执行 ajax 调用来查找来自用户的所有新通知,但我想向用户展示该图标实际上值得单击(或者有一些不同的颜色,或者像 Google Plus 那样带有新通知数量的气泡)。

我可以在用户登录时执行此操作,但这意味着用户只有在注销并重新登录时才会看到新通知(因为它会保存在他们的 session 中)。我应该轮询更新吗?我不确定这是否是推荐的方法,因为显示单个数字(或更多取决于通知数量)似乎有点过分了。

最佳答案

如果您使用的是 Node ,那么您可以通过websockets向连接的用户“推送”通知。链接的文档是一个众所周知的 Websocket 引擎的示例,该引擎具有良好的性能和良好的文档。这样,您的应用程序就可以根据您设置的简单查询向任何用户、一组用户或每个人发送通知。

数据存储是另一个问题。一般来说mysql在高扩展性的情况下确实性能较差,而mongo一般确实有更快的读取查询响应,但这取决于你希望使用什么数据结构。如果您的数据采用简单的键值结构,并不真正需要关系数据,那么也许可以使用内存存储,例如 Redis是最合适的。

This如果您想跟进和调查更多信息,答案也包含有关您问题的更多信息。

关于mysql - Node.js 站点上的通知系统使用什么数据库/技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25857295/

相关文章:

javascript - 如何在 mongodb 中进行分组以生成对象列表?

node.js - Cosmos DB 通过部分文档更新进行增量

javascript - $inc 在我的 MongoDB 查询中无法正常工作

c++ - mysql_real_connect 给出段错误 - C++

php - 从 mysql php 制作多级数组

node.js - 为什么 “require”编译但 “import”不编译?

node.js - 已完成请求的 req.pause() 会暂停下一个请求

mongodb - 如何在 Mongoose 中找到最后一个特定值设置为 true 的项目

mysql - 如何在 Mysql 中原子选择行?

PHP PDO : Binding value in one foreach loop regarding insert into on duplicate key update