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

 透明的眼泪2502913707 发布于 2023-01-17 10:38

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

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

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

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

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

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

    他们如何实际存储评论数据?如何存储通知并将其发送给所有用户.

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

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

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

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

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

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

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

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

    2023-01-17 10:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有