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


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

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

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

附思維導圖

NoSQL:選擇合適的數據庫

參考

《NoSQL精粹》

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


免責聲明!

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



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