(转)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适用场景
互联数据
推荐引擎
基于位置的服务不适用场景
更新全部或某个子集的实体
附思维导图
参考
最新文章
- 【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
- 主机宝(zhujibao) /a/apps/zhujibao/manager/apps/config/config.php no-password Login Vulnerabilities Based On Default cookie Verification From Default File
- 【CodeVS】 p1696 奇怪的函数
- spring day01-go1
- c# 利用 两个TREEVIEW控件完成TEENODE的鼠标拖动操作
- Hibernate知识点总结
- python每天进步一点点
- Ocelot中文文档-管理
- 20175315 实验二《Java面向对象程序设计》实验报告
- oracle里面用sql做报表并带小计合计常用到的函数
- linux网络设备驱动
- UVA.12230.Crossing Rivers(期望)
- 定时释放Linux/CentOS缓存
- Scrapy基本命令
- WPF 创建自定义控件及自定义事件
- day2 python学习
- 廖雪峰Java2面向对象编程-5包和classpath-1包package
- 揭开Future的神秘面纱——结果获取
- Linux本地解析文件/etc/hosts说明【原创】
- 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序的解决方法