自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

數(shù)據(jù)庫 SQL Server
在本文中,我們將研究七個(gè)比較SQL和NoSQL的指標(biāo)。想要利用NoSQL數(shù)據(jù)庫的眾多好處的組織通常會(huì)發(fā)現(xiàn)他們面臨兩個(gè)挑戰(zhàn)。

在本文中,我們將研究七個(gè)比較SQL和NoSQL的指標(biāo)。

想要利用NoSQL數(shù)據(jù)庫的眾多好處的組織通常會(huì)發(fā)現(xiàn)他們面臨兩個(gè)挑戰(zhàn):

  • 如何轉(zhuǎn)換其RDBMS模式以利用無模式文檔模型。
  • 了解新的API /查詢以訪問數(shù)據(jù)。

有些人也發(fā)現(xiàn)與NoSQL名稱混淆。該縮寫不僅代表“ SQL”,而且還可能被誤解為“對SQL否”,因此,為了使用NoSQL數(shù)據(jù)庫,組織將不僅需要將其關(guān)系數(shù)據(jù)模型轉(zhuǎn)換為文檔模型,而且還會(huì)獲得有關(guān)他們將選擇的NoSQL數(shù)據(jù)庫API的培訓(xùn)。

實(shí)際上,NoSQL數(shù)據(jù)庫行業(yè)從未放棄過最流行的數(shù)據(jù)庫數(shù)據(jù)訪問。許多NoSQL供應(yīng)商仍在使用SQL的變體。 Cosmos DB, Cassandra CQL, Elasticsearch SQL, Cockroach Labs。即使使用 MongoDB查詢 語言,您仍會(huì)發(fā)現(xiàn)它基于select-join-project構(gòu)造,這是SQL中使用的關(guān)系代數(shù)的基礎(chǔ)。

這個(gè)NoSQL領(lǐng)域中的一個(gè)數(shù)據(jù)庫公司(已完全解決此問題)是 Couchbase 及其 N1QL 查詢語言。雖然Couchbase以本機(jī)JSON格式存儲(chǔ)數(shù)據(jù),但它支持的數(shù)據(jù)模型可以是關(guān)系結(jié)構(gòu)或分層結(jié)構(gòu),由于其模式靈活性和可擴(kuò)展性,經(jīng)常在基于文檔的模型中使用。這是可能的,因?yàn)镃ouchbase提供了類似SQL的查詢語言-N1QL,它擴(kuò)展了SQL語言以允許用戶操縱文檔模型的層次結(jié)構(gòu)。所有這些都是基于 具有鍵值A(chǔ)PI 的Couchbase高性能數(shù)據(jù)服務(wù)構(gòu)建的 。

但是,在當(dāng)今的NoSQL數(shù)據(jù)庫市場中,有很多選擇,并且對于希望確保其數(shù)據(jù)庫技術(shù)投資可以利用NoSQL技術(shù)當(dāng)前提供的所有好處的組織而言,結(jié)果可能帶來許多挑戰(zhàn)。

  1. 對結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的支持
  2. 商業(yè)硬件的水平可擴(kuò)展性
  3. 易于管理架構(gòu)演變

也許最重要的是,除了過去幾十年來一直主導(dǎo)數(shù)據(jù)庫市場的當(dāng)前RDBMS供應(yīng)商之外,還可以選擇供應(yīng)商。

為了幫助客戶做出決定,Altoros(一家致力于幫助公司從舊版IT系統(tǒng)過渡到未來的公司)發(fā)布了查詢比較報(bào)告,以比較當(dāng)今最受歡迎的數(shù)據(jù)庫中的查詢語言。它選擇專注于MySQL / SQL,Couchbase N1QL和MongoDB查詢語言。使用以下條件對每種查詢語言的實(shí)現(xiàn)進(jìn)行了評估,以滿足不同的查詢方案。

  1. 簡單
  2. 可讀性
  3. 表現(xiàn)力
  4. 靈活性
  5. 技能專長
  6. 代碼行
  7. 應(yīng)用程序到服務(wù)器的行程數(shù)

可以在此GitHub 存儲(chǔ)庫中找到所有查詢和數(shù)據(jù)庫轉(zhuǎn)儲(chǔ)的示例,這些示例可以幫助部署和運(yùn)行此報(bào)告中的所有方案。

Altoros報(bào)告方法

該報(bào)告的目的是從傳統(tǒng)RDBMS應(yīng)用程序的角度比較查詢語言。為此,它選擇了:

活動(dòng)管理應(yīng)用程序模型,通常在管理銷售,服務(wù)和營銷活動(dòng)的大多數(shù)CRM系統(tǒng)中找到。報(bào)告設(shè)置包括用于MySQL的關(guān)系模型和用于Couchbase和MongoDB的文檔數(shù)據(jù)庫模型。

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

它還使用了這些系統(tǒng)的大多數(shù)用戶可以識別的一組查詢方案。

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

對于每種情況,報(bào)告均提供以SQL,N1QL和MongoDB查詢語言編寫的相應(yīng)解決方案,然后提供每種解決方案的評估。

評估標(biāo)準(zhǔn)結(jié)果

下表總結(jié)了所有查詢方案的所有等級。請參閱該報(bào)告,以了解每種查詢方案的單獨(dú)評估。

該報(bào)告以MySQL-SQL為參考,根據(jù)許多標(biāo)準(zhǔn)評估了Couchbase N1QL和MongoDB查詢語言。

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

筆記:

  • 與MongoDB,Cassandra和RedisLab一起工作的Altoros發(fā)現(xiàn)N1QL與SQL非常相似,并且始終給它比MongoDB查詢語言更好的評級。
  • 方案3的示例代碼顯示,對于簡單查詢,這三種查詢語言相對相似,并且具有相似的評估標(biāo)準(zhǔn)評分。但是,差異出現(xiàn)在查詢場景中,其中文檔JOIN和Aggregations

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

該圖表顯示了每個(gè)查詢的代碼行數(shù)。盡管此度量標(biāo)準(zhǔn)可能會(huì)出現(xiàn)錯(cuò)誤表述,因?yàn)樗胁樵冋Z言都有自己推薦的格式,但它可以提供有關(guān)復(fù)雜性的簡單指南。

  • N1QL查詢語言的代碼行數(shù)與SQL大致相同。
  • MongoDB查詢語言始終具有更多的代碼行。
  • 對于場景7,Altoros團(tuán)隊(duì)必須為MongoDB查詢語言編寫347行,而N1QL為21行。這個(gè)異常值反映了MongoDB查詢語言在計(jì)算復(fù)雜聚合和通用表表達(dá)式(CTE)方面的局限性,在過去的幾十年中,SQL(現(xiàn)在是N1QL)一直是關(guān)系數(shù)據(jù)庫技術(shù)的主要優(yōu)勢。

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

請注意,這是Altoros團(tuán)隊(duì)提供的MongoDB查詢解決方案。與任何實(shí)現(xiàn)一樣,可能還有其他方式編寫Mongo代碼,但這就是團(tuán)隊(duì)想出的。

客戶端服務(wù)器行程數(shù)

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

該圖顯示了應(yīng)用程序必須提交給數(shù)據(jù)庫服務(wù)器的行程數(shù)。

筆記:

  • 在大多數(shù)情況下,SQL / N1QL只需要向服務(wù)器提交一個(gè)查詢,而MongoDB查詢可能導(dǎo)致多個(gè)部分,因此需要多次訪問后端服務(wù)器。這是由于SQL / N1QL的表現(xiàn)力所致,其中應(yīng)用程序開發(fā)人員只需要聲明所需的輸出,并由服務(wù)器來處理并返回結(jié)果。
  • 缺乏復(fù)雜聚合的支持要求MongoDB在多個(gè)階段執(zhí)行其計(jì)算。這類似于標(biāo)準(zhǔn)的SQL子查詢方法。此處的區(qū)別在于,子查詢結(jié)果集需要在客戶端應(yīng)用程序中維護(hù),然后再傳遞給另一個(gè)查詢。

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

Altoros查詢比較報(bào)告-主要發(fā)現(xiàn)

 

從SQL到NoSQL:7種比較查詢語言的指標(biāo)

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2011-04-06 15:44:02

SQLNOSQL思維轉(zhuǎn)變

2022-06-27 17:01:34

NoSQ數(shù)據(jù)庫SQL

2022-02-14 09:00:00

SQLNoSQL數(shù)據(jù)庫

2011-04-01 09:29:52

MySQLMongoDB

2010-01-12 09:22:24

Windows 7防火墻

2020-12-24 14:47:16

編程語言開發(fā)Web

2015-07-06 14:23:54

NoSQLSQL非關(guān)系型數(shù)據(jù)存儲(chǔ)

2024-04-10 08:00:00

PostgresNoSQL

2011-05-13 09:46:20

MySQLNoSQL

2024-06-14 08:19:45

2020-04-11 22:07:29

存儲(chǔ)分析工具人工智能存儲(chǔ)

2017-11-14 18:54:43

MySQLMongoDBNoSQL

2017-03-13 09:19:38

CAP編程語言

2021-01-07 15:01:09

編程語言JavaPython

2022-12-19 10:56:13

編程語言JavaScriptPython

2013-04-07 09:57:45

CouchbaseMySQLNoSQL

2011-08-01 08:56:06

CouchDBSQLiteNoSQL

2017-06-26 09:15:39

SQL數(shù)據(jù)庫基礎(chǔ)

2010-06-28 17:43:44

SQL Server

2021-06-15 05:52:59

SQLNoSQL數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號