NoSQL系列:選擇合適的數據庫

NoSQL系列:選擇合適的數據庫

爲何使用NoSQL數據庫?

  • 阻抗失衡
    關係模型和內存中的數據結構不匹配
    採用更爲方便的數據交互方式提高開發效率sql

  • 待處理的數據量很大
    數據量超過關係型數據庫的承載能力
    大集羣的出現
    在成本方面,集羣中應用關係數據庫,許可費用是一筆很大的支出;
    橫向擴展和縱向擴展:關係數據庫通常只能是縱向擴展,經過對單機服務器的性能換代加強而實現;而對於擴展到多個服務器,
    DBMS先天不足;(DBMS不是設計給集羣使用的)數據庫

  • 對數據的訪問效率要求高服務器

NoSQL數據庫的分類

鍵值數據庫

  • 產品
    Redis
    BerkerleyDB
    Memcached
    Project Voldemort
    Riak
    LevelDB數據結構

  • 適用場景
    存放會話信息
    用戶配置信息
    購物車數據nosql

  • 不適合的場景
    數據間有大量關係
    含有多項操做的事務
    根據鍵值的部分來查詢數據
    操做關鍵字集合性能

文檔數據庫

  • 產品
    MongoDB
    CouchDB
    RavenDB
    Terrastore
    OrientDB網站

  • 適用場景
    事件記錄
    內容管理系統及博客平臺
    網站分析及實時分析
    電子商務應用程序
    (須要較靈活的模式,低成本創建數據模型)google

  • 不適合場景
    包含多項操做的複雜查詢
    查詢持續變化的聚合結構設計

列族數據庫

  • 產品
    HBase
    Amazon SimpleDB
    Cassdndra
    Hypertable
    BigTable(google)blog

  • 適用場景
    事件記錄
    (保存應用程序狀態,運行中遇到的錯誤)
    CMS及博客平臺
    計數器

  • 不適用場景
    須要ACID事務
    查詢模式變化頻繁的場合

圖數據庫

  • 產品
    FlockDB
    HyperGraphDB
    Infinite Graph
    Neo4J
    OrientDB

  • 適用場景
    互聯數據
    推薦引擎
    基於位置的服務

  • 不適用場景
    更新所有或某個子集的實體

附思惟導圖

NoSQL:選擇合適的數據庫

參考

《NoSQL精粹》

Posted by: 大CC | 07JUL,2014
博客:blog.me115.com [訂閱]
微博:新浪微博

相關文章
相關標籤/搜索