NoSQL如果繼續發展並完善,他最終會成為什麼?

NoSQL最初被理解為No(不是)SQL,到了後來也被理解為Not OnlySQL。現在很多小企業都有用NoSQL替換SQL的的想法,其實在實際應用中,NoSQL與關係型資料庫都有各自擅長的應用領域,NoSQL不能夠徹底替換關係型資料庫,也不能完全解決所有問題。

我們來看一張有趣的圖:

NoSQL Data Models

1.Key-Value

Key-Value是最基礎的,後續的一切產品都是基於Key-Value的存儲發展起來。用過HashMap的小夥伴都知道,Key-Value的取值是通過Key來取Value,知道Key取Value很簡單,但是如果要進行Value的查詢,那就很麻煩,需要用到迭代器,如果HashMap里的數據非常龐大,迭代器的效率就會非常低。

Advertisements

2.Ordered Key-Value

這是在Key-Value基礎上的一種改進,我們把HashMap里的Key按照一定順序來存儲,那麼可以一定程度上可以緩解範圍查詢的壓力。

3.BigTable

BigTable業內認識都知道是什麼,如果不知道的話,HBase應該多少聽說過。BigTable是Google一篇論文中提到的一個產品,而HBase則是基於這篇論文,借鑒BigTable的一個Java版本的開源實現。BigTable是一個結構化數據的分散式存儲,BigTable的Value是由多個ColumnFamily組成,Column Family不能動態擴展,而每個ColumnFamily內部是Column,Column可以動態擴展。

Advertisements

4.Document, Full-Text Search

Document支持兩大特性,一個是Value可以定義更複雜的Schema,另一個是支持索引,能夠進行全文搜索。

5.Graph

Graph資料庫可以認為是從Ordered Key-Value發展而來的一個分支,主要是支持圖結構的數據模型。

然後看圖,嗯 接下來就是SQL了。

所以說,如果NoSQL繼續發展並完善下去,可能最終形態會是SQL。

Advertisements

你可能會喜歡