NoSQL(Not Only SQL)简介

大数据
高并发
高可用
分布式
关系型数据库一般遵循ACID,但是NoSQL不需要。
ACID Atomicity Consistency Insolation Durability

NoSQL(Not Only SQL,不限于SQL)是一类范围非常广泛的持久化解决方案,它们不遵循关系数据库模型,也不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常会避免使用SQL的JOIN操作,一般有水平可扩展的特征。

NoSQL:性能较好,处理数据量较大。
有Redis MangoDB Hbase(Hbase)等

分布式数据系统的CAP原理:
1.一致性Consistency
2.可用性Availability
3.分区容忍性Partition tolerance

NoSQL在CAP原理中任选两项,因为基于节点的分布式系统中,很难全部满足,所以对事务的支持不是很好,虽然也可以使用事务,但是并不是Nosql的闪光点。
优势

  • 易扩展,NoSql数据库种类繁多,数据之间无关系(这样就非常容易扩展)
  • 大数据量高性能,有非常高的读写性能,益于它的无关系行(结构简单),MySQL使用Query Cache(查询缓存),每次表的更新Cache就失效,而NoSQL的Cache是记录级的
  • 多样灵活的数据模型,无需事先为要存储的数据建立字段(随时可以存储自定义的数据格式),关系数据库中增、删字段是一件非常麻烦的事情

NoSQL数据库四种分类:

Key-value型:键值型数据库:
Redis Memcached Amazon‘s Dynamo
Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
适用场景:配置文件 会话 购物车 参数等用户信息的存储、信息与ID挂钩,使用主键访问

文档型:Document-Oriented
MongoDB CouchDB RavenDB
数据以文档的形式存储,每一个文档都是自包含的数据单元,是一系列的数据项的集合。数据项对应一个值:可以是基本数据类型也可以是序列表和关联对象等复杂的数据类型。
数据存储的最小单位是文档,同一个表中的文档属性可以不同。存储形式:XML JSON、JSonB。
文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。
使用场景:存储日志等

列存储:Wide Column Store/Column-Family
Cassandra HBase Riak
也有键,只是指向了列家族
适用场景:日志。博客平台

图数据库(Graph-Oriented)
实体为顶点,实体间的关系是边。
边有名字和方向,并总是有一个开始节点和一个结束节点;
边也可以有属性。
Neo4J、Infinite Graph 、OrientDB
适用场景:关系性强的数据、推荐引擎。

我们总结NoSQL数据库在以下的这几种情况下比较适用:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。
在这里插入图片描述

扫描二维码关注公众号,回复: 4319963 查看本文章

几种主流的的非关系型数据库NoSQL
**BigTable:**Google主打产品,通常是分布在数千台服务器上的PB级的数据。适合读 不适合写。分布式、并发处理数据。支持动态伸缩,效率很高。
基础:
GFS分布式文件系统
Chubby

Dynamo PAD performance
高可用 总是可写

Apache Cassandra
最初由FaceBook开发,集BigTable和Dynamo的特性于一身。
HBase
Hadoop Database
HBase利用Hadoop HDFS文件管理系统

OLTP/OLAP
OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。
在这里插入图片描述

OLAP和OLTP的区别具体详见:https://www.cnblogs.com/hhandbibi/p/7118740.html
其他关于NOSQL的详解见https://www.cnblogs.com/lina520/p/7919551.html

猜你喜欢

转载自blog.csdn.net/mulinsen77/article/details/84670712