nosql与sql

一.定义

NoSQL,泛指非关系型的数据库。 有时也称作 Not Only SQL 的缩写,是对不同于传统的关系 型数据库的数据库管理系统的统称。。NoSQL 用于超大规模数据的存储。SQL(结构化的查询语言),用于关系型数据库,如oracle,mysql。

二.NoSQL 数据库分类

1.列存储, 如Hbase,特点:是按照列存储数据的,方便存储结构化和 半结构化的数据,方便做数据压 缩,对针对某一列或者某几列的查询有非常大的 IO 优势
2.文档存储,如MongoDB,特点:一般用类似 json 的格 式存储,存储的内容是文档型的。 可以对某些字段建立 索引,实现关系数据库的某些功 能。文档型数据库可 以看作是键值数据库的升级版,允许嵌套键值。而且文档型数据库比键值数据库的查询效率更高
3.key-value形式的存储,如redis,Memcache,特点: 可 以 通 过 key 快 速 查 询 到 其 value。一般来说,value可以是任意格式。这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
4.图存储,如FlockDB,特点: 图形关系的最佳存储。如果使用传统 关系数据库来解决的话性能低 下,而且设计使用不方便。

三。NoSQL最大的特点:

1、默认支持分布式(内置分布式解决方案)
2、高性能,高可用性和可伸缩性

四.Nosql使用场景

NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。因此,NoSQL数据库在以下的这几种情况下比较适用:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。

五.nosql与sql的对比

1.关系型数据库 有如下特点:高度组织化结构化数据 ;结构化查询语言(SQL) ;数据和关系都存储在单独的表中 ;有数据操作语言(dml),数据定义语言 (ddl);严格的一致性;基础事务
2.NoSQL 数据库 有如下特点:代表的不仅仅是 SQL ;没有声明性查询语言;没有预定义的模式;键-值对存储,列存储,文档存储,图形数据库 ;最终一致性,而非 ACID 属性(数据库事务正确执行的四个基本要素的缩写,即原子性,一致性,隔离性,持久性);具有非结构化和不可预知的数据;CAP 定理(指的是在一个分布式系统中,一致性,可用性,分区容错性这三个基本需求,最多只能同时满足其中两个);高性能,高可用性和可伸缩性

六。缓存层

在分布式架构中,其实缓存层是可要可不要的,但是为什么要加上缓存层呢,终究原因是为了提高程序的响应性能,把最常用的,查询频率最高的一些数据放在缓存层,就能使程序的访问性能大大的提升,而通常所说的nosql就是内存数据库,而内存里面的访问速度要比磁盘里面的快多了,因为内存访问是随机的,磁盘访问则是序列访问的,但是内存访问的缺点是对内存空间的要求非常高,但是在互联网时代,内存空间的限制已经显得微不足道了,通常都可以通过额外的附加可以满足内存的要求。还有一点需要注意,不能把非常重要的数据或安全性很高的数据放在内存里作为唯一存储空间,这样风险很大。所以一定要先把数据保存在数据库或者做持久化操作,再存储到内存里。

上一篇:MongoDB 4.0在Windows下的下载安装

下一篇:MongoDB简介

猜你喜欢

转载自blog.csdn.net/lx_Frolf/article/details/82770452