gpt4 book ai didi

php - 应用程序特性持久性替代方案 - NoSQL 还是 RDBMS?

转载 作者:行者123 更新时间:2023-11-29 01:45:36 25 4
gpt4 key购买 nike

我正在制作一个具有社交网络某些功能的系统。我想知道您对最适用于某些功能的持久性技术有何看法。

让我们来看看系统的三个基本特征:

  • User Stream - All 应用程序中的用户事件将被记录下来,然后显示在用户配置文件中,类似于 Facebook 墙。这将是应用程序的主要焦点之一,它需要具有尽可能最佳的性能。
  • 应用程序和安全日志 - 这里存储应用程序错误以及其他与用户相关的数据,例如:IP、地理空间位置、历史日志等。这部分将用作额外的安全层。
  • 应用、用户和显示的广告的统计信息。

对于上述每个特征,理想的持久性技术是什么?如果一些答案是关系数据库,为什么最好选择关系数据库而不是 NoSQL?如果答案是 NoSQL,那么最推荐的 NoSQL 是什么?

很抱歉问了很多问题,但我正在研究我可以做出的选择,并希望听到那些已经了解该主题的人的意见,所以我不会仓促做出决定。

注意:如果您可以改进问题的标题,请随时这样做。

最佳答案

在进入用例之前,NoSQL 可以解决 several problems .无论您在这里得到什么答案,请思考以下问题:

  • 您希望您的系统依赖于大数据吗?
  • 它会从分布式中受益吗?
  • 多长的停机时间合适?
  • 您是愿意在不同的数据中心支持 3 个大盒子,还是支持 300 个较小的盒子?

现在您的用例:

  • 用户流 =>

NoSQL绝对可以解决这个问题,因为这里没有100%的一致性要求。话虽如此,你提到 Facebook 很有趣,因为他们依靠庞大的 MySQL 集群来解决这个问题:)

  • 应用程序和安全日志 =>

NoSQL 非常擅长存储日志,事实上,一些 NoSQL 解决方案建立在之上的许多数据结构都是类似日志的结构:Log-Structured Merge-Tree用于/曾经用于 Google BigTabe、Cassandra 等。此外,日志可以变得非常庞大,因此使用 NoSQL 可以更轻松地扩展大小

  • 应用统计 =>

您在这里没有提供太多细节,但是 NoSQL 绝对可以解决显示统计信息

现在回答您应该使用 NoSQL 的问题。说实话:

如果大多数 NoSQL 大师摘下面具,他们都会同意开发人员日常解决的大多数问题可以而且宁愿用 SQL 解决方案来解决,例如 PostgreSQL, MySQL 等。上面有一些很酷的 Redis 缓存层。只有一小部分问题会真正受益于 NoSQL。

如果您决定使用 NoSQL,我会推荐基于 Erlang 的解决方案(Riak、CouchDB),因为 NoSQL、容错数据库应该具有极其强大、灵活且自然分布的基础=> 例如 Erlang OTP。再加上简单为王。当然,他们有大多数语言的客户端,所以如果你不想的话,你甚至不需要知道如何拼写 Erlang。

关于php - 应用程序特性持久性替代方案 - NoSQL 还是 RDBMS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7700811/

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