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的区别的更多相关文章

  1. MongoDB 1: NoSQL 和 SQL的区别

    导读:本篇博客,主要是结合自己在项目中的使用,简单的阐述一下NoSQL和SQL的区别.那么,根据自己的应用,NoSQL这边,选择的是MongoDB(Redis虽然也是,但属于内存存储,这里不予说明). ...

  2. 【转】Redis学习---NoSQL和SQL的区别及使用场景

    什么是NoSQL NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型.分布式.不提供ACID的数 ...

  3. MongoDB->NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"

    关系型数据库遵循ACID规则 事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么 ...

  4. NoSQL(Not Only SQL)

    Everything has its properties and has relation with each other. All in world can be related to each ...

  5. mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多?

    原文:mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多? 版权所有:http://www.fengyunxiao.cn 近几年看了很多关 ...

  6. HiveQL(HiveSQL)跟普通SQL最大区别一直使用PIG,而今也需要兼顾HIVE

    HiveQL(Hive SQL)跟普通SQL最大区别 一直使用PIG,而今也需要兼顾HIVE.网上搜了点资料,感觉挺有用,这里翻译过来.翻译估计不太准确,待自己熟悉HIVE后再慢慢总结. * No t ...

  7. pl/sql和sql的区别

    源地址:https://zhidao.baidu.com/question/187511430.html 1 sql(数据定义语言) 和PL/Sql的区别:答:SQL是结构化查询语言,比较接近自然语言 ...

  8. My SQL 和SQL Server区别

    MySQL 与SQL Server区别 今天了解了二者区别,整理网上查阅资料,总结列举如下: MSSQL == SQL server 是sybase与微软合作时期的产物. 对于程序开发人员而言,目前使 ...

  9. 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  ...

随机推荐

  1. Android 项目配置 gitlab-ci 持续集成

    一.项目根目录下创建一个 .gitlab-ci.yml 文件 然后在 .gitlab-ci.yml 中配置持续集成的脚本: 脚本配置详细可以看: Configuration of your jobs ...

  2. canvas 水波纹

    <!DOCTYPE html> <html> <head> <title>水波背景</title> <meta charset=&qu ...

  3. es6开发环境搭建,babel 将es6转化成es5

    工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ...

  4. Genymotion模拟器无法直接安装APP

    使用Genymotion模拟器安装APP的过程中,将我们的apk拖进去模拟器报以下错误: Genymotion官网常见问题解决办法汇集地址:https://www.genymotion.com/#!/ ...

  5. jmeter进行简单性能测试

    本文使用jmeter做一个简单的压力测试. 压力测试的步骤:1.录制脚本或编写脚本:2.自定义参数:3.场景设计:4.使用控制器模拟用户:5.使用监听,查看测试结果 以10个用户登录http://ww ...

  6. python之asyncio三种应用方法

    1.直接使用asyncio.run方法2.同步的效果,用await调用函数3.创建任务(asyncio.create_task),并发运行任务(await asyncio.gather) import ...

  7. [转]axios的兼容性处理

    来源: https://www.cnblogs.com/leaf930814/p/6807318.html ---------------------------------------------- ...

  8. Daily record-December

    December 11. All circles have the same shape. 所有圆的形状都是相同的.2. She first drew a circle on the board. 她 ...

  9. editorconfig使用

    //是否是顶级配置文件,设置为true的时候才会停止搜索.editorconfig文件 root = true [*] //缩进方式tab" | "space indent_sty ...

  10. C++各种优化

    目录 1.快速结束程序 2.register 3.inline 4.位运算 5.少用或不用STL 6.快读快写 准备工作 超慢cin cout 输出 输入 神一般的快读快写 对比 7.小技巧 8.co ...