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

  • 相关阅读:
    google git的使用方法
    C/C++ 开发库 | C/C++ Development Library
    log4cplus c++开源日志系统
    c++配置类
    Markdown基础语法
    Nhibernate 映射关系,一对多 多对一与多对手在映射文件中的体现。
    Nhibernate refers to an unmapped class nhibernate问题的解决(初学者)
    UICollectionView的使用
    Runloop
    UITableView(转)
  • 原文地址:https://www.cnblogs.com/me115/p/3829115.html
Copyright © 2020-2023  润新知