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作为最后的手段.不是立竿见影的.
标签:mysql,scalability,database-design,nosql,social-networking 来源: https://codeday.me/bug/20190713/1454183.html