我真的应该使用 NoSQL 吗?

     2023-02-23     11

关键词:

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

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

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

【问题讨论】:

这里有太多我们不知道的因素。你在一个团队中工作吗?如果是这样,该团队在 SQL 与 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 都在谈论几千条记录。

什么时候应该使用 NoSQL 数据库而不是关系数据库?可以在同一个网站上使用两者吗?

】什么时候应该使用NoSQL数据库而不是关系数据库?可以在同一个网站上使用两者吗?【英文标题】:WhenshouldIuseaNoSQLdatabaseinsteadofarelationaldatabase?Isitokaytousebothonthesamesite?【发布时间】:2011-04-1209:58:24【问题描述】:使用NoSQL数据... 查看详情

我真的应该删除 ValueEventListener 吗?

】我真的应该删除ValueEventListener吗?【英文标题】:ShouldIactuallyremovetheValueEventListener?【发布时间】:2018-07-2909:41:33【问题描述】:DatabaseReferenceRef=FirebaseDatabase.getInstance().getReference(Constants.Client+"/"+path);Ref.keepSynced(tru 查看详情

2019 年我应该在哪里存储我的 JWT,localStorage 真的不安全吗?

】2019年我应该在哪里存储我的JWT,localStorage真的不安全吗?【英文标题】:WhereshouldIstoremyJWTin2019andisthelocalStoragereallynotsecure?【发布时间】:2019-10-1506:46:16【问题描述】:有趣的话题。由于我正在使用Node.jsApi和ReactReduxClient创建... 查看详情

NoSQL 的用例 [关闭]

...题描述】:NoSQL最近在我们的行业中得到了很多关注。我真的很感兴趣人们对使用关系数据库存储的最佳用例的想法。什么应该触发开发人员认为特定数据集更适合NoSQL解决方案。我对MongoDB和CouchDB特别感兴趣,因为它们似乎在PHP... 查看详情

当我将视图添加到另一个视图(并且这两个视图都由视图控制器控制)时,我真的应该使用 addChildViewController 吗?

...一个视图(并且这两个视图都由视图控制器控制)时,我真的应该使用addChildViewController吗?【英文标题】:ShallIreallyuseaddChildViewControllerwhenIaddaviewtoanotherview(andboththeseviewsarecontrolledbyviewcontrollers)?【发布时间】:2015-04-3017:15:41【问... 查看详情

如果我不舒服,我真的需要使用 React.js 吗?

】如果我不舒服,我真的需要使用React.js吗?【英文标题】:DoIactuallyneedtouseReact.jsifIamnotcomfortable?【发布时间】:2021-05-0215:49:52【问题描述】:我有一个项目应该在下周提交,并希望我个人使用React.js。我花了将近2周的时间使用R... 查看详情

我真的需要在自定义 UIView 中使用 drawRect() 吗?

】我真的需要在自定义UIView中使用drawRect()吗?【英文标题】:DoIreallyneeddrawRect()incustomUIView?【发布时间】:2015-06-0402:29:14【问题描述】:我是iOS新手,并试图了解drawRect()在自定义UIViews中的使用,所以我有一个简单的自定义视图... 查看详情

Firebase:在 NoSQL 中使用维度/事实表设计是个好主意吗

】Firebase:在NoSQL中使用维度/事实表设计是个好主意吗【英文标题】:Firebase:Isitagoodideatousedimension/facttabledesigninNoSQL【发布时间】:2019-07-0609:03:41【问题描述】:所以我想知道,我必须使用NoSQL的一个缺点是:如果我的前端应用程... 查看详情

Scala“未找到:object com”-如果没有其他依赖项,我真的应该在 build.sbt 中添加条目吗?

】Scala“未找到:objectcom”-如果没有其他依赖项,我真的应该在build.sbt中添加条目吗?【英文标题】:Scala"notfound:objectcom"-shouldireallyaddentryinbuild.sbtiftherearenootherdependencies?【发布时间】:2021-07-3005:43:45【问题描述】:我已... 查看详情

任职要求中的熟系redis,你真的熟悉吗?(代码片段)

一、NoSQL1.1、NoSQL引言    NoSQL(NotOnlySQL),意即不仅仅是SQL,泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。1.2、为什么是NoSQL    随着互联网网站的兴起,传统的关系数据库在应... 查看详情

Riak TS 不应该是一个没有 NoSQL 的数据库吗?

】RiakTS不应该是一个没有NoSQL的数据库吗?【英文标题】:RiakTSshouldnotbeanoNoSQLdatabase?【发布时间】:2018-05-0712:42:10【问题描述】:为什么当RiakTS需要预定义的表架构时,它被视为NoSQL数据库?这个架构甚至无法更改!来源:documen... 查看详情

哈希机制真的安全吗?

】哈希机制真的安全吗?【英文标题】:ishashingmechanismreallysecure?【发布时间】:2012-10-3015:56:00【问题描述】:嗯,我一直看到(和关注)人们说要使用散列机制将密码存储在数据库中。我真的很担心它是否安全?举个例子吧。... 查看详情

我真的需要将我的项目货币转换为 NSDecimalNumber 吗?

】我真的需要将我的项目货币转换为NSDecimalNumber吗?【英文标题】:DoIreallyneedtoconvertmyprojectcurrencytoNSDecimalNumber?【发布时间】:2015-10-0203:34:10【问题描述】:是的,我知道我应该使用NSDecimalNumber来处理货币、金钱、价格...I\'veread... 查看详情

我应该担心 .NET 字典的速度吗?

...什么需要担心的吗?另外,如果我做基准测试之类的东西真的很糟糕,那么用其他东西替换字典的最佳方法是什么?使用带有“散列”键的数组会更快吗?但这对插入时间没有帮助吗?另外,我不认为我在进行微优化,因为这确 查看详情

我应该使用我的安装程序部署 app.config 吗?

...用程序中的,并且会在第一次运行时即时生成。如果这是真的,那么没有充分的理由使用安装程序或zip包部署这些文件,对吗?还是我在这里遗漏了什么。我想在推出下一个版本之前确定一下 查看详情

supc++ 的链接线顺序真的很重要吗?

】supc++的链接线顺序真的很重要吗?【英文标题】:Doeslinklineorderforsupc++reallymatter?【发布时间】:2009-08-0421:23:17【问题描述】:这是对先前问题的后续-HowtouseadifferentSTLwithg++我现在可以在使用不同的STL时构建我的代码。但是,我... 查看详情

我应该如何在 mongodb / nosql 中存储数据?

】我应该如何在mongodb/nosql中存储数据?【英文标题】:howshouldistoredatainmongodb/nosql?【发布时间】:2013-07-0423:47:42【问题描述】:我正在node.js和mongodb(mongoose模块)上编写一个大型社交网络。这意味着数据库中会有很多用户和大... 查看详情

我应该聚合以合并两个集合吗?

】我应该聚合以合并两个集合吗?【英文标题】:Shouldiaggregatetomergetwocollection?【发布时间】:2022-01-2123:16:29【问题描述】:我是MongoDB和NoSQL的新手,我正在做一个简单的应用程序,其中包含2个集合tasks_list和user,结构如下tasks_li... 查看详情