关系数据库和NOSQL比较
关系数据库 NOSQL
功能:
NOSQL
功能简单
基本只支持主键查询,有的NOSQL支持非主键查询(不过非主键查询时,其性能也很慢),很少有NOSQL支持二级索引
不支持关联查询,如果有复杂关联查询的需求,NOSQL无法支持
不支持ACID,仅仅支持单记录级的原子操作,如果有高一致性要求的场景,NOSQL很难支持
no schema 多条记录可以有不同数量的字段,存储方便
自身可以分片 扩容比较方便
关系数据库
功能复杂
支持主键查询和其他字段查询(建立二级索引)
支持关联查询
支持ACID
有schema约束
自身无分片功能
性能:
NOSQL
性能比较高
关系数据库
性能较低,因为其要保证事务一致性要做很多检查、加锁等操作,所以很慢,而且关联查询也很复杂,导致效率较低,经常有查询业务不走索引,查询速度也很慢,主要还是因为功能复杂导致的性能较低
总结
选择NOSQL需要下面2个必要条件:
1.不需要ACID
2.不需要关联查询
如果需要以上两个功能,无法选择NOSQL
下面是选择NOSQL的充分条件:
1表结构不固定 【因为关系数据库表结构是固定的,这个是NOSQL唯一比关系数据库好的能力点(笔者个人认知,因为NOSQL的高性能是牺牲一致性等功能为代价的)】
关系数据库和NOSQL比较的更多相关文章
- 5.非关系数据库(Nosql)它mongodb:创建一个集合,导出和导入备份, 数据恢复,进出口
1 固定集合 固定集合值得是事先创建并且大小固定的集合 2 固定集合的特征:固定集合非常像环形队列.假设空间不足,最早文档就会被删除,为新的文档腾出空间.一般来说.固定集合适用于不论什么想要自己 ...
- 关系数据库、NoSQL和NewSQL数据库产品分类
- 什么时候该用NoSQL?
: 杂谈 NoSQL这两年越来越热,尤其是大型互联网公司非常热衷这门技术.根据笔者的经验,并不是任何场景,NoSQL都要优于关系型数据库.下面我们来具体聊聊,什么时候使用NoSQL比较给力: 1) ...
- NoSQL架构实践(一)——以NoSQL为辅
前面<为什么要使用NoSQL>和<关系数据库还是NoSQL数据库>两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL.经常有朋友遇到困惑,看到NoSQL的介绍,觉得很好 ...
- MySQL与NoSQL——SQL与NoSQL的融合
来源:http://www.cnblogs.com/sunli/archive/2011/05/11/mysql-nosql.html 写这一篇内容的原因是MySQL5.6.2突然推出了memcach ...
- 企业级nosql数据库应用与实战-redis
一.NoSQL简介 1.1 常见的优化思路和方向 1.1.1 MySQL主从读写分离 由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力.读写集中在一个数据库上让数据库不堪重负,大部 ...
- NoSQL数据库
NoSQL数据库 1.NoSQL简介 最初表示"反SQL"运动,用新型的非关系型数据库取代关系数据库:现在表示"Not only SQL"关系和非关系型数据库各 ...
- [转]什么时候该用NoSQL?
NoSQL这两年越来越热,尤其是大型互联网公司非常热衷这门技术.根据笔者的经验,并不是任何场景,NoSQL都要优于关系型数据库.下面我们来具体聊聊,什么时候使用NoSQL比较给力: 1) 数据库表sc ...
- 云计算背后的秘密:NoSQL诞生的原因和优缺点
转载收藏一篇对nosql讲解的比较全面的文章:http://blog.csdn.net/xlgen157387/article/details/47908797 这篇文章将和大家聊聊为什么NoSQL会 ...
随机推荐
- hdu 1671 Phone List 统计前缀次数
Phone List Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- input内容,输入账号密码
在爬取需要输入账号密码的网页时,我们需要找到可填写内容的标签.记得之前写过,但是没有记住. 这回重新梳理一下,如何可找到这个标签 以极验后台登录网站为例:https://auth.geetest.co ...
- 每天一点点之vue框架开发 - 部署到线上
1.在项目根目录下运行如下命令 npm run build 会生成一个dist目录, 2.然后将dist目录上传至服务器就可以访问页面了,不需要配置vue环境了.
- HDU 5430:Reflect 欧拉函数
Reflect Accepts: 72 Submissions: 302 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/ ...
- python脚本文件引用
二.Python __init__.py 作用详解 https://www.cnblogs.com/Lands-ljk/p/5880483.html __init__.py 文件的作用是将文件夹变为一 ...
- C++编程学习(三)运算符
一.运算符 1.求余运算双方必须是整数. 2.编程时一定要注意运算符的优先级!!!例如: int a=5,b=6,c=6,k; 3>4 //结果为假 a<b //结果为真 k= b!=c ...
- python 的第一个界面程序(PyQt5)
这里用到了python的一个第三qt库PyQt5,API与qt几乎完全一样(科学严谨下...) from PyQt5.QtWidgets import QApplication, QMainWindo ...
- CodeForces - 748F Santa Clauses and a Soccer Championship
题意:有k对队伍,每对队伍之间将举行两次比赛,两支队伍各主办一次.住宿的地方要求在两支队伍家乡的最短路的结点上或者在两支队伍的家乡.问在选择住宿处最少的情况下,怎么组成这k对队伍? 分析: 1.因为n ...
- 51nod 1392:装盒子 匈牙利+贪心
1392 装盒子 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 收藏 关注 有n个长方形盒子,第i个长度为Li,宽度为Wi,我们需要把他们套放.注意一个盒子 ...
- faster RCNN(keras版本)代码讲解(3)-训练流程详情
转载:https://blog.csdn.net/u011311291/article/details/81121519 https://blog.csdn.net/qq_34564612/artic ...