为什么使用Nosql:Nosql和SQL的区别
1、概念:
SQL(Structured Query Language)数据库,指关系型数据库。主要代表:SQL Server、Oracle、MySQL、PostgreSQL。
NoSQL(Not Only SQL)泛指非关系型数据库。主要代表:MongoDB、Redis、CouchDB。
2、诞生原因:
随着互联网的不断发展,各类型的应用层出不穷,在这个云计算的时代,对技术提出了更多的需求,主要体现在这四个方面:
①低延迟的读写速度:应用快速的反应能极大地提升用户的满意度。
②海量的数据和流量:对于搜索这样大型应用而言,需要利用PB级别的数据和能应对百万级的流量。
③大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理。
④庞大运营成本的考量:IT经理们希望在硬件成本、软件成本和人力成本能够有大幅度地降低。
目前世界上主流的存储系统大部分还是采用了关系型数据库,其主要有以下优点:
①事务处理——保持数据的一致性。
②由于以标准化为前提,数据更新的开销很小
③可以进行join等复杂查询
虽然关系型数据库已经在业界的数据存储方面占据了不可动摇的地位,但是由于其天生的几个限制,使其很难满足上面这几个要求:
①扩展困难:由于存在类似join这要多表查询机制,使得数据库在扩展方面很艰难
②读写慢:这种情况主要发生在数据量达到一定规模时由于关系型数据库的系统逻辑非常复杂,使得其非常容易发生死锁等的并发问题,所以导致其读写速度下滑非常严重。
③成本高:企业级数据库的License价格很惊人,并且随着系统的规模而不断上升。
④有限的支撑容量:现有关系型解决方案还无法支撑Google这样海量的数据存储。
2、NoSQL优缺点:
优点:
①简单的扩展:典型例子是Cassandra,由于其架构是类似于经典的P2P,所以能通过轻松地添加新的节点来扩展这个集群。
②快速的读写:主要例子有Redis,由于其逻辑简单,而且纯内存操作,使得其性能非常出色,单节点每秒可以处理超过10万次读写操作。
③低廉的成本:这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的License成本。
缺点:
①不提供对SQL的支持:如果不支持SQL这样的工业标准,将会对用户产生一定的学习和应用迁移成本。
②支持的特性不够丰富:现有产品所提供的功能都比较有限,大多数NoSQL数据库都不支持事务,也不像MSSQL Server和Oracle那样能提供各种附加功能,比如BT和报表等。
③现有产品的不够成熟:大多数产品都还处于初创期。
3、NoSQL使用场景
①数据库表schema经常变化
②数据库表字段是复杂数据类型
③高并发数据库请求
④海量数据的分布式存储。
4、NoSQL与SQL的区别:
SQL数据库:
在使用之前需要定义表的一个模式
在表中存储相关联的数据
支持join多表查询
提供事务
使用一个强声明性语言查询
提供足够的支持,专业技能和工具
NoSQL数据库:
将相关联的数据存储在类似JSON格式,名称-值
可以保存没有指定格式的数据
保证更新一个文档,但不是多个文档
提供出色的性能和可伸缩性
使用JSON数据对象查询
为什么使用Nosql:Nosql和SQL的区别的更多相关文章
- MongoDB 1: NoSQL 和 SQL的区别
导读:本篇博客,主要是结合自己在项目中的使用,简单的阐述一下NoSQL和SQL的区别.那么,根据自己的应用,NoSQL这边,选择的是MongoDB(Redis虽然也是,但属于内存存储,这里不予说明). ...
- 【转】Redis学习---NoSQL和SQL的区别及使用场景
什么是NoSQL NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型.分布式.不提供ACID的数 ...
- MongoDB->NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"
关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么 ...
- NoSQL(Not Only SQL)
Everything has its properties and has relation with each other. All in world can be related to each ...
- mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多?
原文:mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多? 版权所有:http://www.fengyunxiao.cn 近几年看了很多关 ...
- HiveQL(HiveSQL)跟普通SQL最大区别一直使用PIG,而今也需要兼顾HIVE
HiveQL(Hive SQL)跟普通SQL最大区别 一直使用PIG,而今也需要兼顾HIVE.网上搜了点资料,感觉挺有用,这里翻译过来.翻译估计不太准确,待自己熟悉HIVE后再慢慢总结. * No t ...
- pl/sql和sql的区别
源地址:https://zhidao.baidu.com/question/187511430.html 1 sql(数据定义语言) 和PL/Sql的区别:答:SQL是结构化查询语言,比较接近自然语言 ...
- My SQL 和SQL Server区别
MySQL 与SQL Server区别 今天了解了二者区别,整理网上查阅资料,总结列举如下: MSSQL == SQL server 是sybase与微软合作时期的产物. 对于程序开发人员而言,目前使 ...
- java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp区别和联系
java.util.Date.java.sql.Date.java.sql.Time.java.sql.Timestamp区别和联系 栏目:Java基础 作者:admin 日期:2015-04-19 ...
随机推荐
- MAVEN中的Scope
Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用6个值: *im ...
- vlog.hpp
//vov #ifndef VLOG_HPP #define VLOG_HPP #include <sys/time.h> #include <unistd.h> #ifnde ...
- C# 关键字new用法
1.实例化对象,执行构造函数. public class Test { public Test(string name) { Console.WriteLine(name); } } public c ...
- 解决JNI native 线程不能正常退出的问题
本人刚涉足学习C++ 安卓 java,遇到这个棘手的问题,多谢博客园作者lknlfy 看了你的博客解决了这个问题,此文转发, 方便日后学习 以下内容转自lknlfy作者博客 传送门:http:// ...
- 【PAT】反转链表
PAT 乙级 1025 给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转.例如:给定 L 为 1 → 2 → 3 → 4 → 5 → 6,K 为 3,则输出应该为 3 → ...
- 简易OA漫谈之工作流设计(一个Demo),完成6年前的一个贴子
6年前在腾讯做OA,那时写了两篇心得. https://www.cnblogs.com/wangxiaohuo/archive/2012/08/22/2650893.html https://www. ...
- ckeditor自定义插件--一键给所有的图片添加链接
ckeditor自定义插件在网上查了查,感觉还是比较好用的,写了一个一键给编辑器中的所有图片添加链接. 在ckeditor目录下的plugins下建以插件为名的文件夹,在里边建plugin.js文件, ...
- 牛客网第9场多校E(思维求期望)
链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 题目描述 Niuniu likes to play OSU! We simplify the ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- lumion材质系统室内渲染6.3
材质系统是对于导入的模型,而不对自带的模型起作用.自带的模型有的能改变属性. 点击“材质”点击墙,出来材质库.为墙体赋予一种材质, 完成后点击保存,就可以保存了.然后给窗户添加玻璃材质. 可以看到墙, ...