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适用场景
互联数据
推荐引擎
基于位置的服务不适用场景
更新全部或某个子集的实体
附思维导图

参考
Posted by: 大CC | 07JUL,2014
博客:blog.me115.com [订阅]
微博:新浪微博
NoSQL系列:选择合适的数据库的更多相关文章
- (转)NoSQL系列:选择合适的数据库
内容目录: 为什么使用NoSQL数据库? 键值数据库 文档数据库 列族数据库 图数据库 附思维导图 参考 NoSQL系列:选择合适的数据库 为什么使用NoSQL数据库? 阻抗失衡 关系模型和内存中的数 ...
- 12.app后端如何选择合适的数据库产品
app后端的开发中,经常要面临的一个问题是:数据放在哪里? mysql ?redis?mongodb? 现在有这么多优秀的开源数据库产品,怎么根据业务场景来选择合适的数据? 常用的数据库产品的优缺点又 ...
- 【转】app后端如何选择合适的数据库产品
转自:http://blog.csdn.net/newjueqi/article/details/44003503 app后端的开发中,经常要面临的一个问题是:数据放在哪里? mysql ?redis ...
- SQL VS NoSQL 如何选择数据库
在前一篇文章中我们主要的讨论了SQL与NoSQL数据库之间的主要的差别.接下来,我们将会利用上一篇中的知识来确定在特定的场景中如何确定比较好的选择. 首先我们先来总结一下: SQL数据库: 使用表存 ...
- 谈谈数据库中MyISAM与InnoDB区别 针对业务类型选择合适的表
MyISAM:这个是默认类型,它是基于传统的ISAM类型, ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法. ...
- [你必须知道的NOSQL系列]专题二:Redis快速入门
一.前言 在前一篇博文介绍了MongoDB基本操作,本来打算这篇博文继续介绍MongoDB的相关内容的,例如索引,主从备份等内容的,但是发现这些内容都可以通过官方文档都可以看到,并且都非常详细,所以这 ...
- 转】R利剑NoSQL系列文章 之 Cassandra
原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/3/ 感谢! R利剑NoSQL系列文章 之 Cassandr ...
- 转】R利剑NoSQL系列文章 之 Hive
原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/3/ 感谢! Posted: Jul 27, 2013 Ta ...
- 为MySQL选择合适的备份方式
数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where… table was DROPPed accidentally… IN ...
随机推荐
- 一小时学会Markdown写作
写作也是创作一件产品.以易懂.简洁.凝练的方式表达观点.阐述见解和知识,发挥影响力. 为什么要使用 Markdown 博文迁移的排版兼容.当在多个博客之间,或者在线博客与本地笔记软件之间迁移的时候,排 ...
- 解决tomcat占用8080端口问题图文教程
在dos下,输入 netstat -ano|findstr 8080 //说明:查看占用8080端口的进程 显示占用端口的进程 taskkill /pid 6856 /f //说明,运行 ...
- 内容与Tag
由于要满足精准推送内容的需求, 我们需要将车辆型号与推送内容挂钩, 方法是, 在现有的基础上, 把所有车型, 打上Tag, 目前先打上国籍跟厂商. 在现有的VEHICLE表的基础上, 增加2个colu ...
- mysql多实例部署
mysql 多实例常规来讲,主要有二种方案可以实现,这二种方案各有利弊,如下:1.基于多配置文件 通过使用多个配置文件来启动不同的进程,以此来实现多实例. 优点:逻辑简单,配置简单 缺点:管理起来不方 ...
- grads 绘制仿matlab色标效果
http://bbs.06climate.com/forum.php?mod=viewthread&tid=38391&page=1#pid530730
- java生成验证码的逻辑
直接撸代码: 1.html <input class="form-control placeholder-no-fix width-yzm" type="text& ...
- [lua]lua简介
在这篇文章中,我想向大家介绍如何进行Lua程序设计.我假设大家都学过至少一门编程语言,比如Basic或C,特别是C.因为Lua的最大用途是在宿主程序中作为脚本使用的. Lua 的语法比较简单,学习起来 ...
- css弹性盒子学习
css3弹性盒子是一种布局方式,在适应不同的屏幕大小的时候,能够确保元素拥有更恰当的排布行为.它只是视觉呈现上的,即显示顺序适应显示空间,与源代码无关,源代码顺序不受影响. 定义一个弹性盒子: 在cs ...
- 去掉DataTable中重复的行
//DataView dv = dt3.DefaultView; //dt3默认的虚拟视图 //dv.Sort = "wmid asc"; //排序 ///dv.ToTab ...
- 20150624_Andriod _web_service_匹配
using System;using System.Data;using System.Configuration;using System.Linq;using System.Web;using S ...