从SQL到NoSQL7种比较查询语言的指标分别是什么

66次阅读
没有评论

共计 2125 个字符,预计需要花费 6 分钟才能阅读完成。

从 SQL 到 NoSQL7 种比较查询语言的指标分别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我们将研究七个比较 SQL 和 NoSQL 的指标。

有些人也发现与 NoSQL 名称混淆。该缩写不仅代表“ SQL”,而且还可能被误解为“对 SQL 否”,因此,为了使用 NoSQL 数据库,组织将不仅需要将其关系数据模型转换为文档模型,而且还会获得有关他们将选择的 NoSQL 数据库 API 的培训。

实际上,NoSQL 数据库行业从未放弃过最流行的数据库数据访问。许多 NoSQL 供应商仍在使用 SQL 的变体。Cosmos DB,Cassandra  CQL,Elasticsearch SQL,Cockroach Labs。即使使用 MongoDB 查询   语言,您仍会发现它基于 select-join-project 构造,这是 SQL 中使用的关系代数的基础。

这个 NoSQL 领域中的一个数据库公司 (已完全解决此问题) 是 Couchbase 及其 N1QL   查询语言。虽然 Couchbase 以本机 JSON 格式存储数据,但它支持的数据模型可以是关系结构或分层结构,由于其模式灵活性和可扩展性,经常在基于文档的模型中使用。这是可能的,因为 Couchbase 提供了类似 SQL 的查询语言 -N1QL,它扩展了 SQL 语言以允许用户操纵文档模型的层次结构。所有这些都是基于   具有键值 API 的 Couchbase 高性能数据服务构建的。

但是,在当今的 NoSQL 数据库市场中,有很多选择,并且对于希望确保其数据库技术投资可以利用 NoSQL 技术当前提供的所有好处的组织而言,结果可能带来许多挑战。

对结构化和非结构化数据的支持

商业硬件的水平可扩展性

易于管理架构演变

也许最重要的是,除了过去几十年来一直主导数据库市场的当前 RDBMS 供应商之外,还可以选择供应商。

为了帮助客户做出决定,Altoros(一家致力于帮助公司从旧版 IT 系统过渡到未来的公司)发布了查询比较报告,以比较当今最受欢迎的数据库中的查询语言。它选择专注于 MySQL  / SQL,Couchbase N1QL 和 MongoDB 查询语言。使用以下条件对每种查询语言的实现进行了评估,以满足不同的查询方案。

简单

可读性

表现力

灵活性

技能专长

代码行

应用程序到服务器的行程数

可以在此 GitHub 存储库中找到所有查询和数据库转储的示例,这些示例可以帮助部署和运行此报告中的所有方案。

Altoros 报告方法

该报告的目的是从传统 RDBMS 应用程序的角度比较查询语言。为此,它选择了:

活动管理应用程序模型,通常在管理销售,服务和营销活动的大多数 CRM 系统中找到。报告设置包括用于 MySQL 的关系模型和用于 Couchbase 和 MongoDB 的文档数据库模型。

它还使用了这些系统的大多数用户可以识别的一组查询方案。

对于每种情况,报告均提供以 SQL,N1QL 和 MongoDB 查询语言编写的相应解决方案,然后提供每种解决方案的评估。

评估标准结果

下表总结了所有查询方案的所有等级。请参阅该报告,以了解每种查询方案的单独评估。

该报告以 MySQL-SQL 为参考,根据许多标准评估了 Couchbase N1QL 和 MongoDB 查询语言。

笔记:

与 MongoDB,Cassandra 和 RedisLab 一起工作的 Altoros 发现 N1QL 与 SQL 非常相似,并且始终给它比 MongoDB 查询语言更好的评级。

方案 3 的示例代码显示,对于简单查询,这三种查询语言相对相似,并且具有相似的评估标准评分。但是,差异出现在查询场景中,其中文档 JOIN 和 Aggregations

该图表显示了每个查询的代码行数。尽管此度量标准可能会出现错误表述,因为所有查询语言都有自己推荐的格式,但它可以提供有关复杂性的简单指南。

N1QL 查询语言的代码行数与 SQL 大致相同。

MongoDB 查询语言始终具有更多的代码行。

对于场景 7,Altoros 团队必须为 MongoDB 查询语言编写 347 行,而 N1QL 为 21 行。这个异常值反映了 MongoDB 查询语言在计算复杂聚合和通用表表达式 (CTE) 方面的局限性,在过去的几十年中,SQL(现在是 N1QL)一直是关系数据库技术的主要优势。

请注意,这是 Altoros 团队提供的 MongoDB 查询解决方案。与任何实现一样,可能还有其他方式编写 Mongo 代码,但这就是团队想出的。

客户端服务器行程数

该图显示了应用程序必须提交给数据库服务器的行程数。

笔记:

在大多数情况下,SQL / N1QL 只需要向服务器提交一个查询,而 MongoDB 查询可能导致多个部分,因此需要多次访问后端服务器。这是由于 SQL /  N1QL 的表现力所致,其中应用程序开发人员只需要声明所需的输出,并由服务器来处理并返回结果。

缺乏复杂聚合的支持要求 MongoDB 在多个阶段执行其计算。这类似于标准的 SQL 子查询方法。此处的区别在于,子查询结果集需要在客户端应用程序中维护,然后再传递给另一个查询。

Altoros 查询比较报告 - 主要发现

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-18发表,共计2125字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)