【问题标题】:Should I really use NoSQL?我真的应该使用 NoSQL 吗?
【发布时间】:2012-09-23 21:25:15
【问题描述】:

我有一些报告结合了来自 3 个不同服务器的数据创建 json 并将其显示给用户。当有数千条记录时,无法通过 Web 处理它并且它会超时。我现在正在排队用户请求并生成一个 json 文件并发送一个链接,所以当用户打开链接时,我只显示数据而不是任何处理。

我最近遇到了 NoSql。在我的特殊情况下,除了能够在文件上运行查询之外,使用 NoSql 将数据存储到文件还有什么好处吗?

【问题讨论】:

  • 这里有太多我们不知道的因素。你在一个团队中工作吗?如果是这样,该团队在 SQL 与 NoSQL 解决方案方面是否有更多经验?如果你选择他们不太熟悉的,他们会愿意学习吗?你可以试着回答这些问题,但还会有无数个。因此,我真的看不出有人能正确回答这个问题。

标签: mongodb performance couchdb scalability nosql


【解决方案1】:

如果您有数千条记录聚合结果,您应该能够使用 SQL 或 NoSQL 处理它们,以适应几乎任何用例。

NoSQL 不仅仅是让 SQL 更快的灵丹妙药,它是一种不同类型的数据存储解决方案,有自己的优势和劣势。

使用平面文件、SQL 还是 NoSQL 来聚合几千条数据记录是最佳选择,这在很大程度上取决于您的舒适区和查询要求。从性能的角度来看,所有这些都可以在这种大小的数据集上运行良好。如果您发现自己编写的不仅仅是琐碎的逻辑来管理当前文件,请根据您对每种方法的熟悉程度使用 SQL 或 NoSQL。

【讨论】:

  • 哦,我明白了...您正在谈论聚合数据的临时存储。我会更新我的答案。
【解决方案2】:

如果您要创建报告,答案很可能是“否”。 SQL 基本上是一个事务性和报告环境,您必须了解,在将 NoSQL 解决方案用作主存储时,您在很大程度上放弃了这两者。这也是为什么许多最令人印象深刻的 NoSQL 部署使用这些引擎作为传统 RDBMS 的辅助工具而不是替代产品的原因。

在这种情况下,我的建议是您希望考虑使用更多 SQL将您的服务器连接在一起,以便您可以将其作为单个 SQL 查询运行。我不知道您使用的是什么 RDBMS,所以我无法提供具体信息,但在 PostgreSQL 上,您可以执行外部数据包装器并使用它们从其他三台服务器查询数据。是的,你可以通过这些访问非 PostgreSQL 服务器.....

我的猜测是,如果只有几千行,您的问题是您在客户端编程中所做的事情可能在数据库端更有效。

【讨论】:

  • 当然可以使用 NoSQL 进行报告。参见 Map/Reduce,例如indoos.wordpress.com/2010/02/08/bi-with-mapreduce
  • 是的,但那是在输入上使用数据转换。如果您的报告要求发生变化,并且您明天需要一份超过 10 亿条记录的新报告,那么您就是 SOL。
  • 如果您的报告要求发生变化,并且您使用带有不适当索引的 SQL,或者需要包含不在星型模式中的数据,那么您也将陷入困境。无论如何,OP 都在谈论几千条记录。
猜你喜欢
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
  • 2018-07-29
  • 2012-06-19
  • 1970-01-01
相关资源
最近更新 更多