NoSQL系列:選擇合適的數據庫
為什么使用NoSQL數據庫?
-
阻抗失衡
關系模型和內存中的數據結構不匹配
采用更為方便的數據交互方式提升開發效率 -
待處理的數據量很大
數據量超過關系型數據庫的承載能力
大集群的出現
在成本方面,集群中應用關系數據庫,許可費用是一筆很大的支出;
橫向擴展和縱向擴展:關系數據庫一般只能是縱向擴展,通過對單機服務器的性能換代增強而實現;而對於擴展到多個服務器,
DBMS先天不足;(DBMS不是設計給集群使用的) -
對數據的訪問效率要求高
NoSQL數據庫的分類
鍵值數據庫
-
產品
Redis
BerkerleyDB
Memcached
Project Voldemort
Riak
LevelDB -
適用場景
存放會話信息
用戶配置信息
購物車數據 -
不適合的場景
數據間有大量關系
含有多項操作的事務
根據鍵值的部分來查詢數據
操作關鍵字集合
文檔數據庫
-
產品
MongoDB
CouchDB
RavenDB
Terrastore
OrientDB -
適用場景
事件記錄
內容管理系統及博客平台
網站分析及實時分析
電子商務應用程序
(需要較靈活的模式,低成本建立數據模型) -
不適合場景
包含多項操作的復雜查詢
查詢持續變化的聚合結構
列族數據庫
-
產品
HBase
Amazon SimpleDB
Cassdndra
Hypertable
BigTable(google) -
適用場景
事件記錄
(保存應用程序狀態,運行中遇到的錯誤)
CMS及博客平台
計數器 -
不適用場景
需要ACID事務
查詢模式變化頻繁的場合
圖數據庫
-
產品
FlockDB
HyperGraphDB
Infinite Graph
Neo4J
OrientDB -
適用場景
互聯數據
推薦引擎
基於位置的服務 -
不適用場景
更新全部或某個子集的實體
附思維導圖
參考
Posted by: 大CC | 07JUL,2014
博客:blog.me115.com [訂閱]
微博:新浪微博