常見NoSQL的特點分析與比較


3.分類:

3.1(最常見的鍵值存儲)

a.臨時性的:保存在內存中,可以進行快速的保存和讀取操作, 數據有可能丟失

b.永久性:在磁盤上保存數據,可以進行快讀的讀寫(沒有內存中快),數據不會丟失

c.兩者兼具:內存和硬盤同時保存數據,可以進行快速的讀寫操作, 硬盤上有數據不會丟失, 適合處理數組類型的數據

 

3.2(面向文檔的(MongoDB,CouchDB))

a.存儲方式:沒有表結構,類似於jason。

b.可以進行復雜的查詢條件

 

3.3(面向列的數據庫Hbase)

a.關系型數據庫是面向行的,對少量行進讀寫,而面向列的數據庫,對大量行少數列進行讀寫,對所有特定的列進行通時更新。

b.高拓展性(特別是寫入)

c.應用十分困難

d.對大量數據更新和查詢有優勢

 

 

3.1詳解:memcached(臨時性鍵值存儲):

a.高速的響應

b.作為高速緩存使用(通過關系型數據庫建立索引也可以獲得高速響應):在處理大量的數據時候,他可以當作關系型數據庫中間量,充當緩存來獲得高速的響應速度,通過快速的讀取里面的數據來彌補可能丟掉數據的可能性。

c.存儲方式:散列表方式存儲在內

d.通信:簡單的文本協議,對數據的操作就是類似於保存和鍵值相對應的值,只能對字符類型數據進行操作(其它格式的數據可以利用jason來處理進行格式化,這樣就可以跨平台傳輸)。

e.對數據操作簡單,

f.memcached增加服務器時的經典算法:一致性散列:

g.缺點:因為他的數據時在內存中的,1.所以容易造成數據的丟失。解決方法:只用它來解決數據的拷貝,而把原始的數據放在安全的地方。2.web服務用的多(國外的網站基本都會引入memcached),

 

兩種情況下它的威力大:1.有些網頁需要執行一些好使的SQL文,響應很慢,有些網頁訪問率高,負載大,(關系型數據庫解決這種問題的方法:增加臨時表,批處理)

 

Tokyo Tyrant(永久性鍵值存儲,是存儲在硬盤上的)

1.優勢:他的數據雖然是存儲在銀盤上的,但是它數據的操作硬盤的io處理無關,可以實現高速的訪問(而且還不用擔心數據會丟失)

2.它還有一個優點就是它能根據數據的類型選着存儲的結構,所以它在查詢時就有了自己優勢,不僅能像關系型數據庫范圍查詢還能進行key—value進行完全一致條件的查詢。

3.數據類型:a.緩存數據庫 ,以key-value形式來存儲 b.

4.它把復制作為作為一項標准的功能

5.缺點:安裝難度大(ruby)

 

Redis(臨時性/持久性鍵值存儲)

1.快速處理數組形式的數據

2.通過虛擬內存可以和操作系統進行互換結構,通過內存中的保存的所有數據的鍵來實現高效的處理。

3.引用;github, 微笑直播的觀眾人數統計

4,.應用:時間線形式的web應用

5.適合處理時間序列的數據

 

MongoDB(高性能和可擴展)

1.面向文檔

2.關系型數據庫的結構是事先定義好的,碰到不需要改變表結構的的信息存儲的時候,還是挺可觀的,但是如果在后來的處理中碰到了要改變表結構才能存儲的數據,那時候,處理起來就比較麻煩了。

3.普通的關系型數據庫實現(反復的表結構變換),可以通過json把數據進行系列化,然后保存到表格中,然后讀取數據的時候反系列化,然后篩選出自己需要的數據也可以解決,但是這下來時間開銷就會增大。

3。不需要定義表結構的數據庫,可以根據KEY值可以進行關系數據庫那樣的查詢亦可以添加索引。

4.數據的保存形式:BSON(JSON的二進制產物)把值和鍵進行制關聯。

5,他不能進行jion查詢,但是它可以通過嵌套達到同樣的效果。

6.優勢:沒有表結構,可以靈活的指定查詢條件。比如正則表達式查詢或者對特定數組元素的查詢都可以

7.實例應用:問卷調查數據的保存

 

幾種基本的NoSQL的數據庫的性能驗證:

 

 

 

NoSQL化的關系型數據庫

1.將MySQL數據庫NoSQL化的HandlerSocket的方法:

 

特征:

1.高速地完成單純的數據的插入和讀取處理

2.可以使用SQL和Handlersocket對同一數據訪問

3.可以通過協議獨立訪問MySQL的數據

4.不支持事物處理

 

handlesocket機構圖:

 

它可以直接訪問Handler的接口,但是一般的都要通過SQL層來實現訪問(免去了解析SQL和鎖表和解鎖的處理)

 

不足:只能支持帶有索引的查詢數據,

 

總結:插入數據部分:比一般的關系型數據庫快,雖然沒memcached快。讀取速度可以和Redis相仿

 

 

Berkeley DB

1.存儲形式:key-多value形式

2.不支持網絡訪問,程序是通過進程內的API訪問的

3.架構及其簡單,

4,介於內存數據庫和關系數據庫之間

選用四種算法:B+數算法:平衡的二叉樹,按其關鍵字有序存儲,和HASH算法

1.訪問速度快。

2.節約硬盤空間

3.大多數系統都用它,支持多進程和事物

4.有XMl接口,可以存儲XML數據

5,兼容一些老的Unix數據庫(DBM)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM