在绝大部分时候,我们都会首先考虑用关系型数据库来存储我们的数据,比如SQLServer,Oracle,MySQL 等等。

关系型数据库的特点:

1、它以表格的形式,基于行存储数据,是一个二维的模式。

2、它存储的是结构化的数据,数据存储有固定的模式(schema),数据需要适应表结构。

3、表与表之间存在关联(Relationship)。

4、大部分关系型数据库都支持SQL(结构化查询语言)的操作,支持复杂的关联查询。

5、通过支持事务(ACID 酸)来提供严格或者实时的数据一致性。

但是使用关系型数据库也存在一些限制,比如:

1、要实现扩容的话,只能向上(垂直)扩展,比如磁盘限制了数据的存储,就要扩大磁盘容量,通过堆硬件的方式,不支持动态的扩缩容。水平扩容需要复杂的技术来实现,比如分库分表。

2、表结构修改困难,因此存储的数据格式也受到限制。

3、在高并发和高数据量的情况下,我们的关系型数据库通常会把数据持久化到磁盘,基于磁盘的读写压力比较大。

为了规避关系型数据库的一系列问题,我们就有了非关系型的数据库,我们一般把它叫做“non-relational”或者“Not Only SQL”。NoSQL 最开始是不提供SQL 的数据库的意思,但是后来意思慢慢地发生了变化。

非关系型数据库的特点:

1、存储非结构化的数据,比如文本、图片、音频、视频。

2、表与表之间没有关联,可扩展性强。

3、保证数据的最终一致性。遵循BASE(碱)理论。Basically Available(基本可用); Soft-state(软状态); Eventually Consistent(最终一致性)。

4、支持海量数据的存储和高并发的高效读写。

5、支持分布式,能够对数据进行分片存储,扩缩容简单。

对于不同的存储类型,我们又有各种各样的非关系型数据库,比如有几种常见的类型:

1 、KV 存储, 用Key Value 的形式来存储数据。比较常见的有Redis 和MemcacheDB。

2、文档存储,MongoDB。

3、列存储,HBase。

4、图存储,这个图(Graph)是数据结构,不是文件格式。Neo4j。

5、对象存储。

6、XML 存储等等等等。

这个网页列举了各种各样的NoSQL 数据库http://nosql-database.org/ 。

NewSQL 结合了SQL 和NoSQL 的特性(例如PingCAP 的TiDB)。

SQL 与NoSQL相关推荐

  1. SQL与NoSQL的区别 以MySQL与MongoDB为例

    异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...

  2. EF Core:一统SQL和NoSQL数据库

    推出EF Core的初衷之一,就是开发出一种可在很少甚至不更改代码的情况下使用SQL和NoSQL数据库的模型.Microsoft正向此目标迈出第一步,发布了用于Azure Cosmos DB的实验性E ...

  3. 宅男程序员给老婆的计算机课程之4:SQL vs NoSQL

    男主角:Wuvist(新浪微博),真名翁伟,自称胖程序员一个,幸好已婚.学习.NET出身,现常用Python做服务器端开发,曾任新加坡某创业公司主程.公司被Techcrunch blog过后,觉得新加 ...

  4. SQL、NoSQL、NewSQL,论开源之路谁主沉浮

    天下大势,分久必合,合久必分,没有什么是永恒的.在SQL的发展过程中,占据数据库市场绝大部分的SQL.NoSQL.NewSQL,目前也呈现出融合的趋势.也许开源的未来之路只有一条,但在当下,于企业而言 ...

  5. 5.3 使用SQL还是NoSQL

    SQL 数据库擅于用高效且紧凑的形式存储结构化数据.这种数据库需要花费大量精力保证数据的一致性,需要考虑停电或硬件失效.为了达到这种程度的可靠性,关系型数据库采用一种称为 ACID 的范式,即 ato ...

  6. SQL vs NoSQL:异同比较

    SQL的表 vs NoSQL的文档 数据结构 关系型 关系型数据库最典型的数据结构是表.通常长下面这个样子: Table A id content 1 test a 2 test b Table B: ...

  7. 程序员该如何向奶奶解释 SQL 和 NoSQL?

    @程序员,如果你的奶奶问你什么是 SQL 和 NoSQL,你会如何浅显易懂地向她解释清楚呢? 作者 | SebastianScholl 译者 | 刘静,责编 | 郭芮 出品 | CSDN(ID:CSD ...

  8. 关于SQL 与 NoSQL的区别

    转载自:http://blog.csdn.net/xlgen157387/article/details/47908797 云计算背后的秘密:NoSQL诞生的原因和优缺点 我本来一直觉得NoSQL其实 ...

  9. 大数据入门学习:SQL与NOSQL数据库

    这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者.有自学hadoop的,有报名培训班学习的.所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境.修改配置文件测试 ...

最新文章

  1. pstree进程管理
  2. C++实现大数的四则运算
  3. 5G-NR复用与信道编码
  4. 五万块钱买什么车好_10万预算买什么车好?看空间、动力和配置
  5. netty系列之:基于流的数据传输
  6. JavaScript数据结构与算法——基本排序算法
  7. atcoder 076
  8. 酷安应用市场php源码,酷安应用市场 v11.0.3-999 去广告极限精简版
  9. 如何使用recaptcha_在Spring MVC Web应用程序中使用reCaptcha
  10. python最好用的画图工具_python Matplotlib.plot 超好用的画图技巧,总有一条用得到!...
  11. EBS业务学习之应收管理
  12. i12蓝牙耳机使用说明书图片_飞利浦SHB4385 BASS+无线蓝牙耳机晒单 使用体验
  13. 今天日期减去过去日期_汽车各零部件也有身份证,教你们如何看这些部件的quot;出生日期quot;...
  14. linux中pak命令,Linux常用包管理及命令
  15. word流程图两条线的端点连接_word 2013流程图连线 word流程图连线
  16. 心知天气api PHP,心知天气API的应用实例
  17. centos8修改系统语言为中文
  18. arcgis10.2以上版本转换测量队节点所在TXT为所需格式(arctoolbox-samples-features-creat featrure from text file所需要的面格式)
  19. epub文件是什么文件?哪里有epub图书资源?如何打开?
  20. [微软社区精英计划] 北京运营团队成员介绍,期待够Open的你

热门文章

  1. Open images from USB camera on linux using V4L2 with OpenCV
  2. 一个炒鸡好用的pdf阅读器
  3. 06.十分钟学会表达式语言EL
  4. RMI non-JRMP server at remote endpoint
  5. HashSet 的contains方法
  6. 收藏一个php用的一个页码按钮类
  7. Grafana Worldmap外网用户request地图监控
  8. 百度地图滚轮缩放,所在点偏移问题
  9. 使用移动自适应布局+easy mock实现移动界面的简单实现
  10. jQuery:1.5.4.3,表格变色(单击行,把当行的单选按钮(radio)设为选中状态,并应用当前样式)...