精华内容
下载资源
问答
  • NoSQL和SQL区别

    2021-01-20 12:47:17
    一、NoSQL数据库的四大种类 一)分类 图 1 4 种类型的 NoSQL 数据库 二)不同分类特点对比 分类 例子 应用场景 数据模型 优点 缺点 键值数据库 Redis,Oracle BDB 内容缓存,主要处理大量数据的高访问负载...

    一、NoSQL数据库的四大种类

    一)分类
    在这里插入图片描述
    图 1 NoSQL 数据库分类

    二)不同分类特点对比

    分类例子应用场景数据模型优点缺点
    键值数据库Redis,Oracle BDB内容缓存,主要处理大量数据的高访问负载,也有一些日志系统等Key 指向 Value 的键值对,通常用hash table来实现查找速度快数据无结构化,通常只被当作字符串或者二进制数据
    列存储数据库Cassandra, HBase分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限
    文档型数据库CouchDB, MongoDBWeb应用Key-Value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构查询性能不高,而且缺乏统一的查询语法
    图形数据库Neo4J, InfoGrid社交网络,推荐系统等。专注于构建关系图谱图结构利用图结构相关算法。比如最短路径寻址,N度关系查找等很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

    三)补充
    1、KV键值对

    • 新浪:Redis
    • 美团:Redis + Tair
    • 阿里、百度:Redis + Memcached
    • Redis

    Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    • Tair

    Tair是一种分布式结构数据存储系统,由一个中心控制节点和一系列的服务节点组成。
    Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别与缓存和持久化存储对应。
    Tair的功能是get、put、delete以及批量接口。

    在这里插入图片描述 图2 Tair总体架构图

    • Memcached

    Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

    Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

    Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。 本质上,它是一个简洁的key-value存储系统。

    一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

    2、文档型数据库

    • BSON格式

    Bson格式是类似json的一种二进制格式,主要被用作MongoDB数据库中的数据存储和网络传输,专门为MongoDB而开发的。

    这种格式不一定比json存储的文件小,其优点是解释快。

    • MongoDB

    MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档。
    MongoDB是一个介于关系型数据库和非关系型数据库中间的产品,是非关系型数据库中功能最丰富,最像关系型数据库的。

    • ConthDB

    二、NoSQL和SQL的区别

    一)概念

    SQL:是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。是用于所有数据库的基本语言,不同数据库之间存在较小的语法改,但基本的SQL语法基本保持不变。
    SQL数据库:指关系型数据库,有:SQL Server、Oracle、MySQL(开源)…
    NoSQL数据库:泛指非关系型数据库或分布式数据库,有:Redis、MongoDB、ConthDB…

    二)区别

    在这里插入图片描述
    图3 SQL数据库和NoSQL数据库对比

    1、语言

    SQL数据库是基于表的,它的定义和操作是基于数据的结构化查询语言(SQL)。这种语言非常强大,适用于复杂的查询,但要求所有数据都必须遵循相同的结构。这可能需要大量的前期准备,意味着结构的变化容易对整个系统造成破坏。

    NoSQL数据库具有非结构化数据的动态模式,没有固定查询语言,是通过API、SDK来实现。数据以多种方式存储,有面向文档,面向列,基于图形或组织为KeyValue存储。可以在没有首先定义结构的情况下创建文档,语法因数据库而异,可以随时添加字段。

    2、可伸缩性

    SQL数据库都是可垂直扩展的。
    NoSQL数据库可以横向扩展,更适用大数据存储。

    3、遵循的属性

    SQL数据库遵循ACID属性(atomicity原子性, consistency一致性, isolation隔离性和durability持久性)
    NoSQL数据库遵循Brewers CAP定理(Consistency一致性,Availability可用性和Partitiontolerance分区容差)

    4、适用场景

    目前许多大型互联网项目都会选用MySQL(或任何关系型数据库) + NoSQL的组合方案。

    • 适合使用 SQL 开发的项目:

    适合存储结构化数据,如用户的帐号、地址:
    1)数据库模式,结构可以预先规定的,或者可以相对固定的项目
    2) 要求数据事务性、一致性
    3) 这些数据的规模、增长的速度通常是可以预期的

    • 适合使用 NoSQL 开发的项目:

    适合存储非结构化数据,如文章、评论:
    1)不相关,不确定和逐步发展的数据需求
    2) 速度和可扩展性至关重要的
    3)这些数据通常用于模糊处理,如全文搜索、机器学习

    展开全文
  • NoSQL和SQL简介对比

    万次阅读 2018-09-19 21:30:48
    在日常的编码中,我们常用的是SQL(结构...NoSQL数据库自从20世纪60年代就已经存在了,现在主流的NoSQL有MongoDB, CouchDB, Redis Memcache等数据库。 SQL就不做过多的介绍了,我们来说一下NoSQLNoSQL,指的是非...

    在日常的编码中,我们常用的是SQL(结构化的查询语言)数据库,SQL是过去四十年间存储数据的主要方式。现在主流的SQL主要有MySQL、SQLServer、Oracel等数据库。NoSQL数据库自从20世纪60年代就已经存在了,现在主流的NoSQL有MongoDB, CouchDB, Redis 和Memcache等数据库。

    SQL就不做过多的介绍了,我们来说一下NoSQL。NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

    菜鸟教程的SQL简介:http://www.runoob.com/sql/sql-tutorial.html

    菜鸟教程的NOSQL简介:http://www.runoob.com/mongodb/nosql.html

    关于NoSQL和MySQL一点看法:

    1. SQL和NoSQL有着相同的目标:存储数据。但是它们存储数据的方式不同,这可能会影响到你开发的项目,一种会简化你的开发,一种会阻碍你的开发。尽管目前NoSQL数据库非常的火爆,但是NoSQL是不能取代SQL的--它仅仅是SQL的一种替代品。
    2. 一些项目可能会更适合使用SQL数据库,然而一些项目可能会比较适合使用NoSQL,有些项目使用哪一种都可以很好地达到预期的效果。
    3. SQL和NoSQL没有明显的区别。一些SQL数据库也采用了NoSQL数据库的特性,反之亦然。在选择数据库方面的界限变得越来越模糊了,并且一些新的混合型数据库将会在不久的将来提供更多的选择。

    SQL和NoSQL的区别:

    1. SQL数据库提供关系型的表来存储数据,NoSQL数据库采用类JOSN的键值对来存储文档。                                               SQL中的表结构具有严格的数据模式约束,因此存储数据很难出错。                                                                          NoSQL存储数据更加灵活自由,但是也会导致数据不一致性问题的发生。
    2. 在SQL数据库中,除非你事先定义了表和字段的模式否则你无法向其中添加数据。在NoSQL数据库中,数据在任何时候都可以进行添加,不需要事先去定义文档和集合。                                                                                                         SQL在进行数据的逻辑操作之前我们必须要定义数据模式,数据模式可以在后期进行更改,但是对于模式的大改将会是非常复杂的。因此NoSQL数据库更适合于那些不能够确定数据需求的的工程项目(MongoDB会在集合中为每一个文档添加一个独一无二的id。如果你仍然想要定义索引,你也可以自己在之后定义)。

      模式中包含了许多的信息:主键 — 独一无二的标志就像ISBN唯一确定一条记录;索引 — 通常设置索引字段加快搜索的速度;关系 — 字段之间的逻辑连接;计功能例如触发器和存储程序  
    3. SQL具有数据库的规范化。NoSQL虽然可以同样使用规范化,但是更倾向非规范化。                                                        在SQL中我们需要增加一张新表tableB,一张旧表tableB关联新表只需使用外键B_id,用于引用tableB中的信息,这样的设计能够最小化数据的冗余,我们不需要为tableA重复的添加tableB的所有信息—只需要去引用就可以了。这项技术叫做数据库的规范化,具有实际的意义。我们可以更改tableB的信息而不用修改tableA中的数据。而NoSQL更多的是在tableA中为每项数据添加tableB的信息,这样会使查询更快,但是在更新出版社信息的记录变多时效率将会显著地下降。
    4. SQL具有JOIN操作。 NoSQL则没有

      SQL语言为查询提供了强大的JOIN操作。我们可以使用单个SQL语句在多个表中获取相关数据。而在NoSQL中没有与JOIN相同的操作,对于具有SQL语言经验的人来说是非常令人震惊的。这也是非规范化存在的原因之一。

    5. SQL具有数据完整性。NoSQL则不具备数据完整性

      大多数的数据库允许通过定义外键来进行数据库的完整性约束。在NoSQL数据库中则没有数据完整性的约束选项。你可以存储任何你想要存储的数据。理想情况下,单个文档将是项目的所有信息的唯一来源。

    6. SQL需要自定义事务。NoSQL 操作单个文档时具备事务性,而操作多个文档时则不具备事务性

      在SQL数据库中,两条或者多条更新操作可以结合成一个事务(或者全部执行成功否则失败)执行。将两条更新操作绑定为一个事务确保了它们要么全部成功要么全部失败。在NoSQL数据库中,对于一个文档的更新操作是原子性的。换句话说,如果你要更新一个文档中的三个值,要么三个值都更新成功要么它们保持不变。然而,对于操作多个文档时没有与事务相对应的操作。在MongoDB中有一个操作是transaction-like options,但是,需要我们手动的加入到代码中。

    7. SQL使用SQL语言。NoSQL使用类JSON

      SQL是一种声明性语言。SQL语言的功能强大,并且已经成为了一种国际的通用标准,尽管大多数系统在语法上有一些细微的差别。NoSQL数据库使用类似JOSN为参数的JavaScript来进行查询!基本操作是相同的,但是嵌套的JOSN将会产生复杂的查询。

    8. NoSQL比SQL更快

      通常情况下,NoSQL比SQL语言更快。这并没有什么好震惊的,NoSQL中更加简单的非规范化存储允许我们在一次查询中得到特定项的所有信息。不需要使用SQL中复杂的JOIN操作。也就是说,你的项目的设计和数据的需求会有很大的影响。一个好的SQL数据库的设计的表现一定会比一个设计不好的NoSQL数据库性能好很多,反之亦然。

    适合使用SQL开发的项目:                                                                                                                                         

    1. 可以预先定义逻辑相关的离散数据的需求                                                                                                                     
    2. 数据一致性是必要的                                                                                                                                                   
    3. 具有良好的开发者经验和技术支持的标准的成熟技术

    适合使用NoSQL开发的项目:                                                                                                                                    

    1. 不相关,不确定和逐步发展的数据需求                                                                                                                        
    2. 更简单或者更宽松的能够快速开始编程的项目
    3. 速度和可扩展性至关重要的

    总结

    SQL数据库:

    • 使用表存储相关的数据

    • 在使用表之前需要先定义标的模式

    • 鼓励使用规范化来减少数据的冗余

    • 支持使用JOIN操作,使用一条SQL语句从多张表中取出相关的数据

    • 需要满足数据完整性约束规则

    • 使用事务来保证数据的一致性

    • 能够大规模的使用

    • 使用强大的SQL语言进行查询操作

    • 提供大量的支持,专业技能和辅助工具

    NoSQL数据库:

    • 使用类JSON格式的文档来存储键值对信息

    • 存储数据不需要特定的模式

    • 使用非规范化的标准存储信息,以保证一个文档中包含一个条目的所有信息

    • 不需要使用JOIN操作

    • 允许数据不用通过验证就可以存储到任意的位置

    • 保证更新的单个文档,而不是多个文档

    • 提供卓越的性能和可扩展性

    • 使用JSON数据对象进行查询

    • 是一种新型的技术

    展开全文
  • 关于NoSQLSQL区别

    万次阅读 多人点赞 2015-08-23 19:30:02
    云计算背后的秘密:NoSQL诞生的原因优缺点 我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL...

    云计算背后的秘密:NoSQL诞生的原因和优缺点

    我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL的理解也只是皮毛而已,但我还算是一个“知耻而后勇”的人,所以经过一段时间的学习之后,从本系列第六篇开始,就将和大家聊聊NoSQL,而本篇将主要给大家做一下NoSQL数据库的综述。
    首先将和大家聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起?

    诞生的原因

    随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求,主要体现在下面这四个方面:
    1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度;
    2. 支撑海量的数据和流量:对于搜索这样大型应用而言,需要利用PB级别的数据和能应对百万级的流量;
    3. 大规模集群的管理:系统管理员希望分布式应用能更简单的部署和管理;

    1. 庞大运营成本的考量:IT经理们希望在硬件成本、软件成本和人力成本能够有大幅度地降低;

    目前世界上主流的存储系统大部分还是采用了关系型数据库,其主要有一下优点:

    1.事务处理—保持数据的一致性;

    2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上只有一处);

    3.可以进行Join等复杂查询。

    虽然关系型数据库已经在业界的数据存储方面占据不可动摇的地位,但是由于其天生的几个限制,使其很难满足上面这几个需求:
    1. 扩展困难:由于存在类似Join这样多表查询机制,使得数据库在扩展方面很艰难;
    2. 读写慢:这种情况主要发生在数据量达到一定规模时由于关系型数据库的系统逻辑非常复杂,使得其非常容易发生死锁等的并发问题,所以导致其读写速度下滑非常严重;
    3. 成本高:企业级数据库的License价格很惊人,并且随着系统的规模,而不断上升;
    4. 有限的支撑容量:现有关系型解决方案还无法支撑Google这样海量的数据存储;
    业界为了解决上面提到的几个需求,推出了多款新类型的数据库,并且由于它们在设计上和传统的NoSQL数据库相比有很大的不同,所以被统称为“NoSQL”系列数据库。总的来说,在设计上,它们非常关注对数据高并发地读写和对海量数据的存储等,与关系型数据库相比,它们在架构和数据模型方量面做了“减法”,而在扩展和并发等方面做了“加法”。现在主流的NoSQL数据库有BigTable、HBase、Cassandra、SimpleDB、CouchDB、MongoDB和Redis等。接下来,将关注NoSQL数据库到底存在哪些优缺点。

    优缺点

    在优势方面,主要体现在下面这三点:
    1. 简单的扩展:典型例子是Cassandra,由于其架构是类似于经典的P2P,所以能通过轻松地添加新的节点来扩展这个集群;
    2. 快速的读写:主要例子有Redis,由于其逻辑简单,而且纯内存操作,使得其性能非常出色,单节点每秒可以处理超过10万次读写操作;
    3. 低廉的成本:这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的License成本;
    4.
    但瑕不掩瑜,NoSQL数据库还存在着很多的不足,常见主要有下面这几个:
    1. 不提供对SQL的支持:如果不支持SQL这样的工业标准,将会对用户产生一定的学习和应用迁移成本;
    2. 支持的特性不够丰富:现有产品所提供的功能都比较有限,大多数NoSQL数据库都不支持事务,也不像MS SQL Server和Oracle那样能提供各种附加功能,比如BI和报表等;
    3. 现有产品的不够成熟:大多数产品都还处于初创期,和关系型数据库几十年的完善不可同日而语;
    上面NoSQL产品的优缺点都是些比较共通的,在实际情况下,每个产品都会根据自己所遵从的数据模型和CAP理念而有所不同,接下来,将给大家介绍NoSQL两个最重要的概念:数据模型和CAP理念,并在本文最后,对主流的NoSQL数据库进行分类。

    Naresh Kumar是位软件工程师与热情的博主,对于编程与新事物拥有极大的兴趣,非常乐于与其他开发者和程序员分享技术上的研究成果。近日,Naresh撰文比较了NoSQL与RDBMS,并详细介绍了他们各自的特点与适用的场景。

    NoSQL并不是关系型数据库管理系统,本文将会介绍NoSQL数据库与关系型数据库之间的差别,同时还会讨论在何种场景下应该使用NoSQL,何种场景下不应该使用。由于NoSQL还是个相对较新的技术,因此它还面临着很多挑战。

    时至今日,互联网上有数以亿计的用户。大数据与云计算已经成为很多主要的互联网应用都在使用或是准备使用的技术,这是因为互联网用户每天都在不断增长,数据也变得越来越复杂,而且有很多非结构化的数据存在,这是很难通过传统的关系型数据库管理系统来处理的。NoSQL技术则能比较好地解决这个问题,它主要用于非结构化的大数据与云计算上。从这个角度来看,NoSQL是一种全新的数据库思维方式。

    为何要使用NoSQL数据库?

    1.NoSQL具有灵活的数据模型,可以处理非结构化/半结构化的大数据

    现在,我们可以通过Facebook、D&B等第三方轻松获得与访问数据,如个人用户信息、地理位置数据、社交图谱、用户产生的内容、机器日志数据以及传感器生成的数据等。对这些数据的使用正在快速改变着通信、购物、广告、娱乐以及关系管理的特质。没有使用这些数据的应用很快就会被用户所遗忘。开发者希望使用非常灵活的数据库,能够轻松容纳新的数据类型,并且不会被第三方数据提供商内容结构的变化所累。很多新数据都是非结构化或是半结构化的,因此开发者还需要能够高效存储这种数据的数据库。但遗憾的是,关系型数据库所使用的定义严格、基于模式的方式是无法快速容纳新的数据类型的,对于非结构化或是半结构化的数据更是无能为力。NoSQL提供的数据模型则能很好地满足这种需求。很多应用都会从这种非结构化数据模型中获益,比如说CRM、ERP、BPM等等,他们可以通过这种灵活性存储数据而无需修改表或是创建更多的列。这些数据库也非常适合于创建原型或是快速应用,因为这种灵活性使得新特性的开发变得非常容易。

    2.NoSQL很容易实现可伸缩性(向上扩展与水平扩展)

    如果有很多用户在频繁且并发地使用你的应用,那么你就需要考虑可伸缩的数据库技术而非传统的RDBMS了。对于关系型技术来说,很多应用开发者会发现动态的可伸缩性是难以实现的,这时就应该考虑切换到NoSQL数据库上。对于云应用来说,关系型数据库一开始是普遍的选择。然而,在使用过程中却遇到了越来越多的问题,原因就在于他们是中心化的,向上扩展而非水平扩展的。这使得他们不适合于那些需要简单且动态可伸缩性的应用。NoSQL数据库从一开始就是分布式、水平扩展的,因此非常适合于互联网应用分布式的特性。

    在三层互联网架构的Web/应用层上,多年来向上扩展已经成为默认的扩展方式了。随着应用使用人数的激增,我们需要添加更多的服务器,性能则是通过负载均衡来实现的,这时的代价与用户数量成线性比例关系。在NoSQL数据库之前,数据库层的默认扩展方式就是向上扩展。为了支持更多的并发用户以及存储更多的数据,你需要越来越好的服务器,更好的CPU、更多的内存、更大的磁盘来维护所有表。然而,好的服务器意味着更加复杂、私有、并且也更加昂贵。这与Web/应用层所使用的便宜的硬件形成了鲜明的对比。

    3.动态模式

    关系型数据库需要在添加数据前先定义好模式。比如说,你需要存储客户的电话号码、姓名、地址、城市与州等信息,SQL数据库需要提前知晓你要存的是什么。这对于敏捷开发模式来说是场灾难,因为每次完成新特性时,数据库的模式通常都需要改变。因此,如果在开发过程中想将客户喜欢的条目加到数据库中,那就得向表中添加这一列才行,然后要做的就是将整个数据库迁移到新的模式上。

    4.自动分片

    由于是结构化的,关系型数据库通常会垂直扩展,单台服务器要持有整个数据库来确保可靠性与数据的持续可用性。这样做的代价就是非常昂贵、扩展受到限制,并且数据库基础设施会成为失败点。这个问题的解决方案就是水平扩展,添加服务器而不是为单台服务器增加更多的能力。NoSQL数据库通常都支持自动分片,这意味着他们本质上就会自动在多台服务器上分发数据,应用甚至都不知道这些事情。数据与查询负载会自动在多台服务器上做到平衡,当某台服务器当机时,它能快速且透明地被替换掉。

    5.复制

    大多数NoSQL数据库也支持自动复制,这意味着你可以获得高可用性与灾备恢复功能。从开发者的角度来看,存储环境本质上是虚拟化的。

    NoSQL数据库面临的挑战

    1.成熟度

    RDBMS系统由来已久。NoSQL拥护者们会说RDBMS的高龄是其衰退的标志,不过对于大多数CIO来说,RDBMS的成熟让人放心。对于大多数情况来说,RDBMS系统是稳定且功能丰富的。相比较而言,大多数NoSQL数据库则还有很多特性有待实现。

    2.支持

    企业需要的是安心,如果关键系统出现了故障,他们可以获得即时的支持。所有RDBMS厂商都在不遗余力地提供良好的企业支持。与之相反,大多数NoSQL系统都是开源项目,虽然每种数据库都有那么几家公司提供支持,不过这些公司大多都是小的初创公司,没有全球支持资源,也没有Oracle、微软或是IBM那种令人放心的公信力。

    3.分析与商业智能

    NoSQL数据库在Web 2.0应用时代开始出现。因此,大多数特性都是面向这些应用的需要的。然而,应用中的数据对于业务来说是有价值的,这种价值远远超出了Web应用那种CRUD。企业数据库中的业务信息可以帮助改进效率并提升竞争力,商业智能对于大中型企业来说是个非常关键的IT问题。

    4.管理

    NoSQL的设计目标是提供零管理的解决方案,不过当今的现实却离这个目标还相去甚远。现在的NoSQL需要很多技巧才能用好,并且需要不少人力、物力来维护。

    5.专业

    全球有很多开发者,每个业务部门都会有熟悉RDBMS概念与编程的人。相反,几乎每个NoSQL开发者都处于学习模式。这种状况会随着时间的流逝而发生改观。但现在,找到一个有经验的RDBMS程序员或是管理员要比NoSQL专家容易多了。

    结论

    NoSQL数据库正在成为数据库领域的重要力量。如果使用恰当,那么它会带来很多好处。然而,企业应该非常小心并注意到这些数据库的限制与问题。

    NoSQL这两年越来越热,尤其是大型互联网公司非常热衷这门技术。根据笔者的经验,并不是任何场景,NoSQL都要优于关系型数据库。下面我们来具体聊聊,什么时候使用NoSQL比较给力:

    1) 数据库表schema经常变化
    比如在线商城,维护产品的属性经常要增加字段,这就意味着ORMapping层的代码和配置要改,如果该表的数据量过百万,新增字段会带来额外开销(重建索引等)。NoSQL应用在这种场景,可以极大提升DB的可伸缩性,开发人员可以将更多的精力放在业务层。

    2)数据库表字段是复杂数据类型

    对于复杂数据类型,比如SQL Sever提供了可扩展性的支持,像xml类型的字段。很多用过的同学应该知道,该字段不管是查询还是更改,效率非常一般。主要原因是是DB层对xml字段很难建高效索引,应用层又要做从字符流到dom的解析转换。NoSQL以json方式存储,提供了原生态的支持,在效率方便远远高于传统关系型数据库。

    3)高并发数据库请求

    此类应用常见于web2.0的网站,很多应用对于数据一致性要求很低,而关系型数据库的事务以及大表join反而成了”性能杀手”。在高并发情况下,sql与no-sql的性能对比由于环境和角度不同一直是存在争议的,并不是说在任何场景,no-sql总是会比sql快。有篇article和大家分享下,http://artur.ejsmont.org/blog/content/insert-performance-comparison-of-nosql-vs-sql-servers

    4)海量数据的分布式存储

    海量数据的存储如果选用大型商用数据,如Oracle,那么整个解决方案的成本是非常高的,要花很多钱在软硬件上。NoSQL分布式存储,可以部署在廉价的硬件上,是一个性价比非常高的解决方案。Mongo的auto-sharding已经运用到了生产环境。http://www.mongodb.org/display/DOCS/Sharding

    并不是说NoSQL可以解决一切问题,像ERP系统、BI系统,在大部分情况还是推荐使用传统关系型数据库。主要的原因是此类系统的业务模型复杂,使用NoSQL将导致系统的维护成本增加。

    为什么要使用NoSQL

    NoSQL概念
    随着web2.0的快速发展,非关系型、分布式数据存储得到了快速的发展,它们不保证关系数据的ACID特性。NoSQL概念在2009年被提了出来。NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。(“NoSQL”一词最早于1998年被用于一个轻量级的关系数据库的名字。)

    NoSQL被我们用得最多的当数key-value存储,当然还有其他的文档型的、列存储、图型数据库、xml数据库等。在NoSQL概念提出之前,这些数据库就被用于各种系统当中,但是却很少用于web互联网应用。比如cdb、qdbm、bdb数据库。

    传统关系数据库的瓶颈
    传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL为互联网的发展做出了卓越的贡献。

    在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。

    到了最近10年,网站开始快速发展。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在初期,论坛的流量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论坛程序,可以想象一般的论坛的流量有多大。

    Memcached+MySQL
    后来,随着访问量的上升,几乎大部分使用MySQL架构的网站在数据库上都开始出现了性能问题,web程序不再仅仅专注在功能上,同时也在追求性能。程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引。开始比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享,大量的小文件缓存也带了了比较高的IO压力。在这个时候,Memcached就自然的成为一个非常时尚的技术产品。

    Memcached作为一个独立的分布式的缓存服务器,为多个web服务器提供了一个共享的高性能缓存服务,在Memcached服务器上,又发展了根据hash算法来进行多台Memcached缓存服务的扩展,然后又出现了一致性hash来解决增加或减少缓存服务器导致重新hash带来的大量缓存失效的弊端。当时,如果你去面试,你说你有Memcached经验,肯定会加分的。

    Mysql主从读写分离
    由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。

    分表分库
    随着web2.0的继续高速发展,在Memcached的高速缓存,MySQL的主从复制,读写分离的基础之上,这时MySQL主库的写压力开始出现瓶颈,而数据量的持续猛增,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。同时,开始流行使用分表分库来缓解写压力和数据增长的扩展问题。这个时候,分表分库成了一个热门技术,是面试的热门问题也是业界讨论的热门技术问题。也就在这个时候,MySQL推出了还不太稳定的表分区,这也给技术实力一般的公司带来了希望。虽然MySQL推出了MySQL Cluster集群,但是由于在互联网几乎没有成功案例,性能也不能满足互联网的要求,只是在高可靠性上提供了非常大的保证。

    MySQL的扩展性瓶颈
    在互联网,大部分的MySQL都应该是IO密集型的,事实上,如果你的MySQL是个CPU密集型的话,那么很可能你的MySQL设计得有性能问题,需要优化了。大数据量高并发环境下的MySQL应用开发越来越复杂,也越来越具有技术挑战性。分表分库的规则把握都是需要经验的。虽然有像淘宝这样技术实力强大的公司开发了透明的中间件层来屏蔽开发者的复杂性,但是避免不了整个架构的复杂性。分库分表的子库到一定阶段又面临扩展问题。还有就是需求的变更,可能又需要一种新的分库方式。

    MySQL数据库也经常存储一些大文本字段,导致数据库表非常的大,在做数据库恢复的时候就导致非常的慢,不容易快速恢复数据库。比如1000万4KB大小的文本就接近40GB的大小,如果能把这些数据从MySQL省去,MySQL将变得非常的小。

    关系数据库很强大,但是它并不能很好的应付所有的应用场景。MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。

    NOSQL的优势

    易扩展
    NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

    大数据量,高性能
    NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。

    灵活的数据模型
    NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。

    高可用
    NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。

    总结
    NoSQL数据库的出现,弥补了关系数据(比如MySQL)在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。
    MySQL和NoSQL都有各自的特点和使用的应用场景,两者的紧密结合将会给web2.0的数据库发展带来新的思路。让关系数据库关注在关系上,NoSQL关注在存储上。

    关系数据库还是NoSQL数据库

    上一篇简单的说明了为什么要使用NoSQL。接下来我们看下如何把NoSQL引入到我们的项目中,我们到底要不要把NoSQL引入到项目中。

    在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发。因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就更加少了,所以互联网领域基本上都选择了免费的MySQL数据库。在高速发展的WEB2.0时代,我们发现关系数据库在性能、扩展性、数据的快速备份和恢复、满足需求的易用性上并不总是能很好的满足我们的需要,我们越来越趋向于根据业务场景选择合适的数据库,以及进行多种数据库的融合运用。几年前的一篇文章《One Size Fits All - An Idea Whose Time Has Come and Gone》就已经阐述了这个观点。

    当我们在讨论是否要使用NoSQL的时候,你还需要理解NoSQL也是分很多种类的,在NoSQL百花齐放的今天,NoSQL的正确选择比选择关系数据库还具有挑战性。虽然NoSQL的使用很简单,但是选择却是个麻烦事,这也正是很多人在观望的一个原因。

    NoSQL的分类

    NoSQL仅仅是一个概念,NoSQL数据库根据数据的存储模型和特点分为很多种类。
    这里写图片描述

    以上NoSQL数据库类型的划分并不是绝对,只是从存储模型上来进行的大体划分。它们之间没有绝对的分界,也有交差的情况,比如Tokyo Cabinet / Tyrant的Table类型存储,就可以理解为是文档型存储,Berkeley DB XML数据库是基于Berkeley DB之上开发的。

    NoSQL还是关系数据库
    虽然09年出现了比较激进的文章《关系数据库已死》,但是我们心里都清楚,关系数据库其实还活得好好的,你还不能不用关系数据库。但是也说明了一个事实,关系数据库在处理WEB2.0数据的时候,的确已经出现了瓶颈。

    那么我们到底是用NoSQL还是关系数据库呢?我想我们没有必要来进行一个绝对的回答。我们需要根据我们的应用场景来决定我们到底用什么。

    如果关系数据库在你的应用场景中,完全能够很好的工作,而你又是非常善于使用和维护关系数据库的,那么我觉得你完全没有必要迁移到NoSQL上面,除非你是个喜欢折腾的人。如果你是在金融,电信等以数据为王的关键领域,目前使用的是Oracle数据库来提供高可靠性的,除非遇到特别大的瓶颈,不然也别贸然尝试NoSQL。

    然而,在WEB2.0的网站中,关系数据库大部分都出现了瓶颈。在磁盘IO、数据库可扩展上都花费了开发人员相当多的精力来优化,比如做分表分库(database sharding)、主从复制、异构复制等等,然而,这些工作需要的技术能力越来越高,也越来越具有挑战性。如果你正在经历这些场合,那么我觉得你应该尝试一下NoSQL了。

    选择合适的NoSQL
    如此多类型的NoSQL,而每种类型的NoSQL又有很多,到底选择什么类型的NoSQL来作为我们的存储呢?这并不是一个很好回答的问题,影响我们选择的因素有很多,而选择也可能有多种,随着业务场景,需求的变更可能选择又会变化。我们常常需要根据如下情况考虑:

    1.数据结构特点。包括结构化、半结构化、字段是否可能变更、是否有大文本字段、数据字段是否可能变化。

    2.写入特点。包括insert比例、update比例、是否经常更新数据的某一个小字段、原子更新需求。

    3.查询特点。包括查询的条件、查询热点的范围。比如用户信息的查询,可能就是随机的,而新闻的查询就是按照时间,越新的越频繁。

    NoSQL和关系数据库结合
    其实NoSQL数据库仅仅是关系数据库在某些方面(性能,扩展)的一个弥补,单从功能上讲,NoSQL的几乎所有的功能,在关系数据库上都能够满足,所以选择NoSQL的原因并不在功能上。

    所以,我们一般会把NoSQL和关系数据库进行结合使用,各取所长,需要使用关系特性的时候我们使用关系数据库,需要使用NoSQL特性的时候我们使用NoSQL数据库,各得其所。

    举个简单的例子吧,比如用户评论的存储,评论大概有主键id、评论的对象aid、评论内容content、用户uid等字段。我们能确定的是评论内容content肯定不会在数据库中用where content=’’查询,评论内容也是一个大文本字段。那么我们可以把 主键id、评论对象aid、用户id存储在数据库,评论内容存储在NoSQL,这样数据库就节省了存储content占用的磁盘空间,从而节省大量IO,对content也更容易做Cache。

    //从MySQL中查询出评论主键id列表 commentIds=DB.query(“SELECT id FROM comments where aid=’评论对象id’ LIMIT 0,20”); //根据主键id列表,从NoSQL取回评论实体数据 CommentsList=NoSQL.get(commentIds);NoSQL代替MySQL
    在某些应用场合,比如一些配置的关系键值映射存储、用户名和密码的存储、Session会话存储等等,用NoSQL完全可以替代MySQL存储。不但具有更高的性能,而且开发也更加方便。

    NoSQL作为缓存服务器
    MySQL+Memcached的架构中,我们处处都要精心设计我们的缓存,包括过期时间的设计、缓存的实时性设计、缓存内存大小评估、缓存命中率等等。

    NoSQL数据库一般都具有非常高的性能,在大多数场景下面,你不必再考虑在代码层为NoSQL构建一层Memcached缓存。NoSQL数据本身在Cache上已经做了相当多的优化工作。

    Memcached这类内存缓存服务器缓存的数据大小受限于内存大小,如果用NoSQL来代替Memcached来缓存数据库的话,就可以不再受限于内存大小。虽然可能有少量的磁盘IO读写,可能比Memcached慢一点,但是完全可以用来缓存数据库的查询操作。

    规避风险
    由于NoSQL是一个比较新的东西,特别是我们选择的NoSQL数据库还不是非常成熟的产品,所以我们可能会遇到未知的风险。为了得到NoSQL的好处,又要考虑规避风险,鱼与熊掌如何兼得?

    现在业内很多公司的做法就是数据的备份。在往NoSQL里面存储数据的时候还会往MySQL里面存储一份。NoSQL数据库本身也需要进行备份(冷备和热备)。或者可以考虑使用两种NoSQL数据库,出现问题后可以进行切换(避免出现digg使用Cassandra的悲剧)。

    总结
    本文只是简单的从MySQL和NoSQL的角度分析如何选择,以及进行融合使用。其实在选择NoSQL的时候,你可能还会碰到关于CAP原则,最终一致性,BASE思想的考虑。因为使用MySQL架构的时候,你也会碰到上面的问题,所以这里没有阐述。

    展开全文
  • NoSQL和SQL区别及使用场景

    千次阅读 2019-11-17 15:45:58
    什么是NoSQL oSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型、分布式、不提供ACID的数据库设计模式等特征。...SQL N...

    什么是NoSQL

    oSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型、分布式、不提供ACID的数据库设计模式等特征。

    NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

    SQL 和 NoSQL 的区别

    SQL数据库适合那些需求确定和对数据完整性要去严格的项目。NoSQL数据库适用于那些对速度和可扩展性比较看重的那些不相关的,不确定和不断发展的需求。简单来说就是:

    • SQL是精确的

    它最适合于具有精确标准的定义明确的项目。典型的使用场景是在线商店和银行系统。

    • NoSQL是多变的

    它最适合于具有不确定需求的数据。典型的使用场景是社交网络,客户管理和网络分析系统。

    SQL和Nosql的选型和比较

    1.关系型数据库和非关系型数据库

    SQL (Structured Query Language) 数据库,指关系型数据库。主要代表:SQL Server,Oracle,MySQL等。

    NoSQL(Not Only SQL)泛指非关系型数据库,主要代表:MongoDB,Redis等。

    2.关系型数据库适合存储结构化数据

    如用户的帐号、地址等:

    1)这些数据通常需要做结构化查询,比如join,这时候,关系型数据库就要胜出一筹

    2)这些数据的规模、增长的速度通常是可以预期的

    3)保证数据的事务性、一致性要求。

    3.NoSQL适合存储非结构化数据

    如发微博、文章、评论:

    1)这些数据通常用于模糊处理,如全文搜索、机器学习

    2)这些数据是海量的,而且增长的速度是难以预期的,

    3)根据数据的特点,NoSQL数据库通常具有无限(至少接近)伸缩性

    4)按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差

    目前许多大型互联网项目都会选用MySQL(或任何关系型数据库) + NoSQL的组合方案。

    NoSQL的常见类型和比较

    有四种常见的 NoSQL 数据库类型:列式、文档、图形和内存键值。
    在这里插入图片描述

    1.列式数据

    顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

    1)对应的nosql: HBase,BigTable等。

    2)典型应用场景:按列存储,针对某一列或者某几列的查询有非常大的IO优势。

    3)优点:查找速度快,可扩展性强,更容易进行分布式扩展。

    4)缺点:功能相对局限。

    2.文档数据库

    旨在将半结构化数据存储为文档,通常采用 JSON 或 XML 格式。与传统关系数据库不同的是,每个 NoSQL 文档的架构是不同的,可让您更加灵活地整理和存储应用程序数据并减少可选值所需的存储。

    1)对应的nosql:CouchDB, MongoDb

    2)典型应用场景:存储类似JSON格式的内容,可对某些字段建立索引功能,是最像关系型的数据库。

    3)优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构。

    4)缺点:查询性能不高,而且缺乏统一的查询语法。

    3.图形数据库

    可存储顶点以及称为边缘的直接链路。图形数据库可以在 SQL 和 NoSQL 数据库上构建。顶点和边缘可以拥有各自的相关属性。

    1)数据模型:图结构

    2)典型应用场景:社交网络,推荐系统等。专注于构建关系图谱,善于处理大量复杂、互连接、低结构化的数据,数据往往变化迅速,且查询频繁。

    3)优点:利用图结构相关算法。比如最短路径寻址,N度关系查找等。

    4)缺点:很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

    4.内存键值存储

    可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收,是针对读取密集型应用程序工作负载(例如社交网络、游戏、媒体共享和 Q&A 门户)。内存缓存可将重要数据存储在内存中以实现低延迟访问,从而提高应用程序性能。

    1)对应的nosql:Redis,Memcached等

    2)典型应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。

    3)优点:查找速度快。

    4)缺点:数据无结构化,通常只被当作字符串或者二进制数据。

    【原文】

    https://www.toutiao.com/i6594016739183297038/

    展开全文
  • sql和nosql区别Here you will learn about difference between sql and nosql or sql vs nosql. 在这里,您将了解sql和nosqlsql vs nosql之间的区别。 Both are a complete different concept, which could be ...
  • SQL数据库和NoSQL数据库的区别

    千次阅读 2020-02-18 22:43:09
    SQL的全称是Structured Query Language,结构化查询语言,是一种数据库查询程序设计语言,用于存取数据以及查询、更新管理关系数据库。 SQL数据库指关系型数据库,如MYSQL、oracle等,NoSQL(not only SQL)数据库...
  • 什么是NoSQL NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型、分布式、不提供ACID的数据库设计模式等特征。...SQL ...
  • NoSQL 数据库的使用场景 - jlins - 博客园 (cnblogs.com) NoSQL的分类及其优缺点应用场景 - 简书 (jianshu.com)
  • 在本篇内容里我们给大家精选了关于SQL和NoSQL之间的区别的总结内容,对此有需要的朋友们跟着学习下。
  • SQLNoSQL关系和区别

    万次阅读 2017-03-07 15:44:25
    概念 SQL (Structured Query Language) 数据库,指关系型数据库 -...NoSQL(Not Only SQL)泛指非关系型数据库 - 主要代表:MongoDB,Redis,CouchDB。 主要区别 1.存储方式: SQL数据存在特定结构的表中;
  • SQL和NOSQL

    2021-06-23 17:45:49
    文章目录一、SQL和NOSQL1.Nosql特点2.两者区别1) 使用成本2) 存储形式3) 查询速度4) 扩展性5) 是否支持 ACID 特性6) 是否支持 SQL 语句二、Mysql1.SQL注入2.Mysql存储引擎3.读写分离4.缓存缓存分类使用场景缓存作用...
  • NoSQLSQL Data Modeling

    2018-05-24 16:49:35
    NoSQLSQL Data Modeling NoSQLSQL Data Modeling
  • sql数据库虽然教程多,支持也很强大,但是随着互联网应用的出现,sql数据库遇到设计上的弊端,sql对表的定义使得数据横向扩展困难,而且sql数据库的很多特性也没有用武之地,例如及时存取不是必要的,也没有特别多的...
  • NoSQL和SQL怎么选用?.pdf
  • https://www.amazon.com/NoSQL-SQL-Data-Modeling-Semantics/dp/1634621093/ref=sr_1_1?s=books&ie=UTF8&qid=1543411202&sr=1-1&keywords=nosql+and+sql+data+modeling
  • 流利的:用于NoSQL和SQL数据库的蒸气ORM(查询,模型关系)
  • SQLNOSQL MySQL MongoDB 的比较 ##Background SQL 数据库的基本概念是关系型数据库。 关系型数据库的定义是严格使用关系来存储数据。 关系数据库匹配数据的方式是它使用在数据集中发现的共同特征。 在关系...
  • SQL2NOSQL 待办事项清单 日志消息 蒙哥·沙丁(Mongo Sharding) 交换网络
  • 为什么使用 NoSQLNoSQLSQL区别

    万次阅读 多人点赞 2017-07-21 22:37:37
    云计算背后的秘密:NoSQL诞生的原因优缺点 我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL...
  • 关于NoSQL和SQL区别

    千次阅读 2017-08-21 20:17:52
    云计算背后的秘密:NoSQL诞生的原因优缺点 我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对...
  • NoSQL和SQL怎么选用?

    千次阅读 2020-08-31 11:33:01
    简介:NoSQL 有分很多种,其中key-value NoSQL (Redis, MemcacheD, etc) 的选用相对比较清楚些,大多...我理解上,Column Family NoSQL的schema和SQL schema大多能够互相作逻辑转换。也就是说,给一个DB,里面有很多tab
  • 5G时代,为什么NoSQL和SQL存在短板?

    千次阅读 2021-03-03 13:36:56
    当今的通信服务提供商(CSP)需要能够在处理海量复杂的数据的同时,不会下降或者减慢网路响应速度可靠性。5G时代,设备用户数量呈指数级增长,这对业务支持服务(BSS)提出了新需求,也成为了一项特别艰巨的任务...
  • 区别于关系型数据库(SQL)的概念,关系型数据库是指采用了关系模型来组织数据的数据库,其以行列的形式存储数据,比如,MySQL、Oracle、SQLServer、… NoSQL 的数据模型为Key-Value,即使用Key-Value存储数据。...
  • redis学习进程--nosql和sql区别

    千次阅读 2016-01-04 15:54:01
    sql是关系型数据库的结构化查询语言,而nosql,一般代指菲关系型数据库。NoSql,泛指非关系型的数据库。随着互联网web2.o网站的兴起,传统的关系型数据库在应付web2.0网站,特别是超大规模高并发的sNs类型的web2.o...
  • 阿里巴巴中文站商品信息如何存放 一、阿里巴巴架构的发展历程 1、演变过程 2、第五代架构 3、第五代架构使命 ...总结大型互联网应用(大数据、高并发、多样数据类型)的难点解决方案 作者:我_是_太_阳
  • NoSQLSQL区别

    2020-03-29 14:08:38
    关系数据库(Relational database),是创建在关系模型基础上的数据库,借助于集合代数等数学概念方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。 数据库:包括一个或...
  • 主要介绍了最新统计排名前十的SQL和NoSQL数据库排行榜,本文包括Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB等数据库,需要的朋友可以参考下
  • Scray-“大数据”的服务层框架 典型的大数据应用程序需要服务层,该服务层将已处理的数据提供给应用... 该框架通过提供通常与数据存储(NoSQL,以及SQLlambda体系结构结合使用的抽象来努力支持此类应用程序的开发。
  • SQL NoSQL区别

    2020-02-25 09:57:13
    一、概念  SQL(StructuredQueryLanguage)数据库,指关系型... NoSQL(NotOnlySQL)泛指非关系型数据库。主要代表:MongoDB,Redis,CouchDB。 二、区别 1、存储方式  SQL数据存在特定结构的表中;而NoS...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,145
精华内容 30,458
关键字:

nosql和sql的区别