zoukankan      html  css  js  c++  java
  • (转)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精粹》

  • 相关阅读:
    优化-IO
    优化-cpu
    优化-内存
    系统优化
    snort -- 入侵检测系统
    tripwire--入侵检测系统
    sudo
    selinux
    pptpd
    C++ 内联函数
  • 原文地址:https://www.cnblogs.com/ywcz060/p/3842054.html
Copyright © 2011-2022 走看看