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 [订阅]
微博:新浪微博

相关文章
相关标签/搜索