NoSQL系列:选择合适的数据库

时间:2021-08-15 00:56:44

目录:

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精粹》