阿里P8架構師談:NoSQL和SQL的區別,NoSQL的用場景和選型比較

  • 時間:2018-08-26 23:04 作者:優知學院 來源:優知學院 閱讀:239
  • 掃一掃,手機訪問
摘要:什么是NoSQLNoSQL,指的是非關系型的數據庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統的關系型數據庫的數據庫管理系統的統稱,它具備非關系型、分布式、不提供ACID的數據庫設計模式等特征。 NoSQL使用于超大規模數據的存儲。(例如谷歌或者Facebook每天為他們的使
阿里P8架構師談:NoSQL和SQL的區別,NoSQL的用場景和選型比較

什么是NoSQL

NoSQL,指的是非關系型的數據庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同于傳統的關系型數據庫的數據庫管理系統的統稱,它具備非關系型、分布式、不提供ACID的數據庫設計模式等特征。

NoSQL使用于超大規模數據的存儲。(例如谷歌或者Facebook每天為他們的使用戶收集萬億比特的數據)。這些類型的數據存儲不需要固定的模式,無需多余操作即可以橫向擴展。

SQL 和 NoSQL 的區別

阿里P8架構師談:NoSQL和SQL的區別,NoSQL的用場景和選型比較

SQL數據庫適合那些需求確定和對數據完整性要去嚴格的項目。NoSQL數據庫適使用于那些對速度和可擴展性比較看重的那些不相關的,不確定和不斷發展的需求。簡單來說就是:

  • SQL是準確的。它最適合于具備準確標準的定義明確的項目。典型的用場景是在線商店和銀行系統。
  • NoSQL是多變的。它最適合于具備不確定需求的數據。典型的用場景是社交網絡,用戶管理和網絡分析系統。

SQL和Nosql的選型和比較

1.關系型數據庫和非關系型數據庫

SQL (Structured Query Language) 數據庫,指關系型數據庫。主要代表:SQL Server,Oracle,MySQL等。

NoSQL(Not Only SQL)泛指非關系型數據庫,主要代表:MongoDB,Redis等。

2.關系型數據庫適合存儲結構化數據

如使用戶的帳號、地址等:

1)這些數據通常需要做結構化查詢,比方join,這時候,關系型數據庫就要勝出一籌

2)這些數據的規模、增長的速度通常是可以預期的

3)保證數據的事務性、一致性要求。

3.NoSQL適合存儲非結構化數據

如發微博、文章、評論:

1)這些數據通常使用于模糊解決,如全文搜索、機器學習

2)這些數據是海量的,而且增長的速度是難以預期的,

3)根據數據的特點,NoSQL數據庫通常具備無限(至少接近)伸縮性

4)按key獲取數據效率很高,但是對join或者其余結構化查詢的支持就比較差

目前許多大型互聯網項目都會選使用MySQL(或者任何關系型數據庫) + NoSQL的組合方案。

NoSQL的常見類型和比較

有四種常見的 NoSQL 數據庫類型:列式、文檔、圖形和內存鍵值。

阿里P8架構師談:NoSQL和SQL的區別,NoSQL的用場景和選型比較

1.列式數據

顧名思義,是按列存儲數據的。最大的特點是方便存儲結構化和半結構化數據,方便做數據壓縮,對針對某一列或者者某幾列的查詢有非常大的IO優勢。

1)對應的nosql: HBase,BigTable等。

2)典型應使用場景:按列存儲,針對某一列或者者某幾列的查詢有非常大的IO優勢。

3)優點:查找速度快,可擴展性強,更容易進行分布式擴展。

4)缺點:功能相對局限。

2.文檔數據庫

旨在將半結構化數據存儲為文檔,通常采使用 JSON 或者 XML 格式。與傳統關系數據庫不同的是,每個 NoSQL 文檔的架構是不同的,可讓您更加靈活地整理和存儲應使用程序數據并減少可選值所需的存儲。

1)對應的nosql:CouchDB, MongoDb

2)典型應使用場景:存儲相似JSON格式的內容,可對某些字段建立索引功能,是最像關系型的數據庫。

3)優點:數據結構要求不嚴格,表結構可變,不需要像關系型數據庫一樣需要預先定義表結構。

4)缺點:查詢性能不高,而且缺乏統一的查詢語法。

3.圖形數據庫

可存儲頂點以及稱為邊緣的直接鏈路。圖形數據庫可以在 SQL 和 NoSQL 數據庫上構建。頂點和邊緣可以擁有各自的相關屬性。

1)數據模型:圖結構

2)典型應使用場景:社交網絡,推薦系統等。專注于構建關系圖譜,善于解決大量復雜、互連接、低結構化的數據,數據往往變化迅速,且查詢頻繁。

3)優點:利使用圖結構相關算法。比方最短路徑尋址,N度關系查找等。

4)缺點:很多時候需要對整個圖做計算才能得出需要的信息,而且這種結構不太好做分布式的集群方案。

4.內存鍵值存儲

可以通過key快速查詢到其value。一般來說,存儲不論value的格式,照單全收,是針對讀取密集型應使用程序工作負載(例如社交網絡、游戲、媒體共享和 Q&A 門戶)。內存緩存可將重要數據存儲在內存中以實現低推遲訪問,從而提高應使用程序性能。

1)對應的nosql:Redis,Memcached等

2)典型應使用場景:內容緩存,主要使用于解決大量數據的高訪問負載,也使用于少量日志系統等等。

3)優點:查找速度快。

4)缺點:數據無結構化,通常只被當作字符串或者者二進制數據。

阿里P8架構師談:NoSQL和SQL的區別,NoSQL的用場景和選型比較

  • 全部評論(0)
最新發布的資訊信息
【系統環境|服務器應用】Discuz隱藏后臺admin.php網址修改路徑(2019-12-15 14:52)
【系統環境|服務器應用】Discuz發布帖子時默認顯示第一個主題分類的修改方法(2019-12-09 00:13)
【系統環境|軟件環境】Android | App內存優化 之 內存泄漏 要點概述 以及 處理實戰(2019-12-04 14:27)
【系統環境|軟件環境】MySQL InnoDB 事務(2019-12-04 14:26)
【系統環境|軟件環境】vue-router(單頁面應用控制中心)常見用法(2019-12-04 14:26)
【系統環境|軟件環境】Linux中的Kill命令(2019-12-04 14:26)
【系統環境|軟件環境】Linux 入門時必學60個文件解決命令(2019-12-04 14:26)
【系統環境|軟件環境】更新版ThreeJS 3D粒子波浪動畫(2019-12-04 14:26)
【系統環境|軟件環境】前臺開發WebStorm常用快捷鍵,火速收藏!(2019-12-04 14:25)
【系統環境|軟件環境】微博H5登錄和發微博組件(2019-12-04 14:25)
手機二維碼手機訪問領取大禮包
返回頂部
3d开机号查询