NoSql是什么?

1、nosql的简介mysql

Nosql的全称是Not Only Sql,这个概念早起就有人提出,
而咱们经常使用的都是关系型数据库。就像咱们经常使用的mysql,sqlserver同样,
这些数据库通常用来存储重要信息,应对普通的业务是没有问题的。
可是,随着互联网的高速发展,传统的关系型数据库在应付超大规模,
超大流量以及高并发的时候力不从心。而就在这个时候,Nosql获得的告诉的发展。

2、Nosql和关系型数据库的区别
1.存储方式web

  关系型数据库是表格式的,所以存储在表的行和列中。他们之间很容易关联协做存储,
一般存储在数据集中,就像文档、键值对或者图结构。

2.存储结构redis

关系型数据库对应的是结构化数据,数据表都预先定义告终构(列的定义),
结构描述了数据的形式和内容。这一点对数据建模相当重要,
虽然预约义结构带来了可靠性和稳定性,可是修改这些数据比较困难。
而Nosql数据库基于动态结构,使用与非结构化数据。
由于Nosql数据库是动态结构,能够很容易适应数据类型和结构的变化。

3.存储规范sql

关系型数据库的数据存储为了更高的规范性,把数据分割为最小的关系表以免重复,
得到精简的空间利用。虽然管理起来很清晰,可是单个操做设计到多张表的时候,
数据管理就显得有点麻烦。而Nosql数据存储在平面数据集中,
数据常常可能会重复。单个数据库不多被分隔开,而是存储成了一个总体,
这样整块数据更加便于读写

4.存储扩展数据库

这多是二者之间最大的区别,关系型数据库是纵向扩展,也就是说想要提升处理能力,
要使用速度更快的计算机。由于数据存储在关系表中,操做的性能瓶颈可能涉及到多个表,
须要经过提高计算机性能来克服。虽然有很大的扩展空间,
可是最终会达到纵向扩展的上限。而Nosql数据库是横向扩展的,
它的存储自然就是分布式的,能够经过给资源池添加更多的普通数据库服务器来分担负载。

5.查询方式服务器

关系型数据库经过结构化查询语言来操做数据库(就是咱们一般说的SQL)。
SQL支持数据库CURD操做的功能很是强大,是业界的标准用法。
而Nosql查询以块为单元操做数据,使用的是非结构化查询语言(UnQl),
它是没有标准的。关系型数据库表中主键的概念对应Nosql中存储文档的ID。
关系型数据库使用预约义优化方式(好比索引)来加快查询操做,
而Nosql更简单更精确的数据访问模式。

6.事务网络

 关系型数据库遵循ACID规则(原子性(Atomicity)、一致性(Consistency)、
(基本可用(Basically Availble)、软/柔性事务(Soft-state )、最终一致性(Eventual Consistency))。因为关系型数据库的数据强一致性,
因此对事务的支持很好。关系型数据库支持对事务原子性细粒度控制,
而且易于回滚事务。而Nosql数据库是在CAP(一致性、可用性、分区容忍度)中任选两项,由于基于节点的分布式系统中,很难所有知足,因此对事务的支持不是很好,
虽然也可使用事务,可是并非Nosql的闪光点。

7.性能并发

 关系型数据库为了维护数据的一致性付出了巨大的代价,读写性能比较差。
而Nosql存储的格式都是key-value类型的,而且存储在内存中,很是容易存储,
并且对于数据的 一致性是 弱要求。Nosql无需sql的解析,提升了读写性能。

8.受权方式
 nosql

 关系型数据库一般有SQL Server,Mysql,Oracle。主流的Nosql数据库有redis,
成本较大,而Nosql数据库一般都是开源的。

3、为何使用NoSQL ?分布式

今天咱们能够经过第三方平台(如:Google,Facebook等)能够很容易的访问和抓取数据。
用户的我的信息,社交网络,地理位置,用户生成的数据和用户操做日志已经成倍的增长。
咱们若是要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了,
 NoSQL数据库的发展也却能很好的处理这些大的数据