微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySql vs NoSql – 社交网络评论和通知数据结构和实现

我真的很难弄清楚有关社交网站(Facebook作为参考)如何管理其用户评论通知的见解.

他们如何实际存储评论数据?如何存储通知并将其发送给所有用户.一个示例场景是,朋友评论我的状态,并且每个喜欢我状态的人都会收到通知.此外,每个用户都有自己的读/未读功能,所以我猜有一个为每个用户存储的通知参考.但随后会有很多通知信息的冗余.如果我们使用单独的表/集合来存储它们并参考实际的notificatin,那么这将产生实时可伸缩性问题.那么你将如何决定权衡方式呢?当我想到这一切时,我的大脑崩溃了.通过网络提供的帮助不足以解决太多问题.

现在,如何将每个通知发送给应该接收该通知的所有用户……以及数据结构将如何显示.

我阅读了许多建议使用MySql的实现.我的理解是,那种数据(大小)就是,最好使用Nosql来实现可扩展性.
那么MysqL如何很好地适用于这样的用例,以及为什么像Mongo这样的Nosql在任何地方都没有被建议用于这种实现,当它们具有很高的可扩展性时.

好吧,我知道很多问题.但我不是在寻找一个完整的答案,对特定事物的见解也对我构建自己的应用程序有很大的帮助.

解决方法:

问题非常广泛,但我会尽力回答这个问题.

How would they actually store the comments data? also how would a notification be stored and sent to all the users that.

我一般不喜欢回答这样的问题,因为看起来好像你在进入SO之前做了很少的研究.您似乎也对应用程序和数据库角色感到困惑.我至少会给你一些材料/想法,让你自己决定.

后端设计没有“银弹”,特别是涉及数据库时. sql数据库通常在大多数数据库功能方面都非常出色,这是理所当然的.这是一项非常成熟的技术,经得起时间的考验是有原因的.大多数NOsql解决方案专门用于特定目的.例如:如果你记录了很多信息,你可能想看看Cassandra.如果您正在处理大量关系数据,那么您可能希望使用类似Neo4j(或RMDBS的Postgresql / MysqL).如果您正在处理大量实时数据,您可能需要查看Redis.

由于以下几个原因,问NOsql vs sql是愚蠢的:

NOsql总的来说是个坏词.它并不意味着“没有sql”.它的意思是“不仅仅是sql”.不幸的是,该术语甚至封装了与数据库最相反的极端.

只有您了解应用程序的全部功能.即使我知道你想要实现的基础知识,我仍然无法给你一个明确的答案.其他人也不可能.这是非常主观的,而且,只有您完全知道您的应用程序应该做什么.

最大的原因:它是2014年.为什么一个数据库?十年前,“DatabaseX vs DatabaseY”将成为一个实际问题.现在,您可以配置许多应用程序框架,以便在几分钟内可靠地使用多个数据库.故事的道德:将每个数据库用于其专门目的.更多关于多语言持久性here.

就Facebook而言:五分钟的谷歌搜索揭示了他们过去使用过的后端技术,研究他们目前的后端解决方案并不困难.你不是Facebook.您现在无需为十亿用户做好准备.从简单,成熟的技术开始.这将让您自然地扩展您的应用程序.当这些技术开始成为瓶颈时,就要担心可扩展性.

我希望这有助于您开始编码之旅,但如果您遇到代码问题,请使用Stack Overflow作为最后的手段.不是立竿见影的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐