如何选择RDBMS关系型数据库和Nosql非关系型数据库?
RDBMS关系型数据库和Nosql非关系型数据库区别:
一、RDBMS是关系型数据库模式:
1.二维模式,由行列组成。
2.非常强调事务原子性,例如用户提出一个请求,DB完整的去执行,如果报错就全部回滚。
3.适合存储结构性规范性数据,强调数据的一致性,必须所以数据都同步后才能继续。
4.现在流行列式存储在处理大批量加载大批量检索OLAP系统上效果更佳,而且优势很多比如数据即索引数据在存储的时候就被排序了,列式存储可以把同类型的数据放在一起压缩,因为有共性压缩比较大。
5.支持表的复杂关联查询,如果业务涉及到复杂逻辑关系我想RDBMS会更适合。
6.水平扩展是弱势,就算有RAC当节点多的时候也会碰触天花板。
7.无法满足非结构性数据的处理,例如 音频 视频 so on。
二、NOSQL非关系型的一种概念,意思是不仅仅是SQL还有其他的:
1.四大类:key values ,列存储,文档,graph 。
2.大部分都是采用分布式存储结构,大数据来临的时候,先拆分成小块分布的放在不同的机器上,当用户检索的时候又归纳起来,例如现在非常流行的Hbase就是基于HDFS文件系统。
3.Nosql强调数据批处理,快速处理,非常适合非结构性数据,而且数据与数据之间是一种松散的关系,也就是低ACID,一般不提供多表关联查询。
4.分布式架构,优秀的水平扩展能力,倡导廉价PC server搭建大规模的分布式存储系统。
5.根据业务,深度定制自己的sql语句
在NoSQL和SQL的选择上,需要了解到以下内容:
数据模型及操作模型:你的应用层数据模型是行、对象还是文档型的呢?这个系统是否能支持你进行一些统计工作呢?
可靠性:当你更新数据时,新的数据是否立刻写到持久化存储中去了?新的数据是否同步到多台机器上了?
扩展性:你的数据量有多大,单机是否能容下?你的读写量求单机是否能支持?
分区策略:考虑到你对扩展性,可用性或者持久性的要求,你是否需要一份数据被存在多台机器上?你是否需要知道数据在哪台机器上,以及你能否知道。
一致性:你的数据是否被复制到了多台机器上,这些分布在不同点的数据如何保证一致性?
事务机制:你的业务是否需要ACID的事务机制?
单机性能:如果你打算持久化的将数据存在磁盘上,哪种数据结构能满足你的需求(你的需求是读多还是写多)?写操作是否会成为磁盘瓶颈?
负载可评估:对于一个读多写少的应用,诸如响应用户请求的web应用,我们总会花很多精力来关注负载情况。你可能需要进行数据规模的监控,对多个用户的数据进行汇总统计。你的应用场景是否需要这样的功能呢?
转载自:http://blog.itpub.net/26686207/viewspace-734867/
具体如何选择,请大家留言评论帮我补充细化!!
如何选择RDBMS关系型数据库和Nosql非关系型数据库?的更多相关文章
- 关系型数据库和nosql非关系型数据库
快下班了.突然和同事聊起了node+mongdb,因为我们这里的项目没有mongdb,就问后端的同事,我们'爱装逼'的后端的同事让我们先自己学习一下什么关系型数据库和非关系型数据库.一顿百度查询了解下 ...
- NoSql非关系型数据库之MongoDB应用(二):安装MongoDB可视化工具
业精于勤,荒于嬉:行成于思,毁于随. 我们上次说到NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 这次我们介绍安装 NoSQL Manager for MongoDB 可 ...
- NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用
业精于勤,荒于嬉:行成于思,毁于随. 我们可以结合相关的IDE做一个简单的增删改查了,实现MongoDB在项目中的初步应用. 前提是安装了MongoDB服务和MongoDB可视化工具,没有安装的可以点 ...
- MongoDB(NoSQL) 非关系型数据库
目录 简单了解 mongoDB 简单使用mongoDB 简单了解 mongoDB # NoSQL 泛指非关系型的数据库 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅 ...
- NoSQL非关系型数据库
NoSQL 关注公众号"轻松学编程"了解更多. 一.概念 NoSQL(Not Only SQL)非关系型数据库(功能换效率). 优点 开发维护成本低 访问灵活 访问速度快(缓存+快 ...
- NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务
业精于勤,荒于嬉:行成于思,毁于随. 一.MongoDB服务下载安装(windows环境安装) 1.进入官网:https://www.mongodb.com/,点击右上角的 Try Free , 2 ...
- 关系型数据库 VS 非关系型数据库
一.关系型数据库? 1.概念 关系型数据库是指采用了关系模型来组织数据的数据库.简单来说,关系模式就是二维表格模型. 主要代表:SQL Server,Oracle,Mysql,PostgreSQL. ...
- 非关系型数据库(NoSql)
最近了解了一点非关系型数据库,刚刚接触,觉得这是一个很好的方向,对于大数据 方面的处理,非关系型数据库能起到至关重要的地位.这里我主要是整理了一些前辈的经验,仅供参考. 关系型数据库的特点 1.关系型 ...
- 关系型数据库 和 非关系型数据对比 以及 MySQL与Oracle对比
一.关系型数据库 关系型数据库,是指采用了关系模型来组织数据的数据库. 关系模型1970年提出的,关系模型的概念得到了充分的发展并逐渐成为主流数据库结构的主流模型. 简单来说,关系模型指的 ...
随机推荐
- js比较函数
//1.//bySort函数接受一个首要比较字符串和一个可选的次要比较函数做为参数//并返回一个可以用来包含该成员的对象数组进行排序的比较函数//当o[firstName] 和 p[firstName ...
- java学习笔记 --- 多线程(1)
1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在. 2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,我们发现只有运行的程序才会出现进 ...
- linux查看网络链接状况命令netstat
linux查看网络链接状况命令 netstat 参数如下: -a 显示所有socket,包括正在监听的. -c 每隔1秒就重新显示一遍,直到用户中断它. -i 显示所有网络接口的信息,格式同“ifco ...
- JSON格式规范总结
JSON有三类元素: 1.结构体(关键字:大括号)2.键值对(关键字:冒号)3.数组(关键字:中括号) 组织规则:结构体中放一个或者多个键值对.键只能是字符串.值可以是:字符串.数字.null.tru ...
- 团队开发中Git冲突解决
正常来说我们团队协作开发过程中,冲突是常有的事,下面介绍下本人在开发中的解决办法. 冲突的主要原因就是由于我们开发人员在分支的同一位置写入了不一样的代码,然后合并到主干上导致我们冲突. 方法: 当冲突 ...
- xj监控端口,模拟登陆脚本
#!/bin/bash date=`date +%Y%m%d-%H%M` count=0 ip1=124.117.246.195 ip2=124.117.246.194 port1=(443 80 6 ...
- UIAlertController UIAlertView用法
项目中很多地方会出现弹出框框,来做个判断 基本方法如下 UIAlertController *alertC = [UIAlertController alertControllerWithTitle: ...
- vim编辑 小笔记
http://jingyan.baidu.com/article/495ba8410ff14d38b30ede01.html vim编辑器笔记 1.vi 文件名 打开文件 2.按 i 键 进入inse ...
- mysql 查找表的auto_increment和修改
1.查看最大的AUTO_INCREMENT SELECT AUTO_INCREMENT from information_schema.tables where table_schema='cont ...
- CS231n笔记列表
课程基础1:Numpy Tutorial 课程基础2:Scipy Matplotlib 1.1 图像分类和Nearest Neighbor分类器 1.2 k-Nearest Neighbor分类器 1 ...