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

最新文章

  1. 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
  2. 主机宝(zhujibao) /a/apps/zhujibao/manager/apps/config/config.php no-password Login Vulnerabilities Based On Default cookie Verification From Default File
  3. 【CodeVS】 p1696 奇怪的函数
  4. spring day01-go1
  5. c# 利用 两个TREEVIEW控件完成TEENODE的鼠标拖动操作
  6. Hibernate知识点总结
  7. python每天进步一点点
  8. Ocelot中文文档-管理
  9. 20175315 实验二《Java面向对象程序设计》实验报告
  10. oracle里面用sql做报表并带小计合计常用到的函数
  11. linux网络设备驱动
  12. UVA.12230.Crossing Rivers(期望)
  13. 定时释放Linux/CentOS缓存
  14. Scrapy基本命令
  15. WPF 创建自定义控件及自定义事件
  16. day2 python学习
  17. 廖雪峰Java2面向对象编程-5包和classpath-1包package
  18. 揭开Future的神秘面纱——结果获取
  19. Linux本地解析文件/etc/hosts说明【原创】
  20. 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序的解决方法

热门文章

  1. HTML5 服务器推送事件(Server-sent Events)实战开发
  2. MultiCardMenu
  3. Android多媒体数据库之MediaStore研究
  4. phonegap 安装和使用eclipse
  5. 类的this指针 总结
  6. 在Linux使用mingw32来编写win32程序
  7. [转]UINavigationController 返回的方法汇总
  8. php常见问题辨析(二)
  9. SQL Insert语句数据以以unicode码存储 解决存储数据出现乱码的问题
  10. Pretty Poem