NoSQL学习笔记

什么是Nosql
Nosql:Not only sql ,不只仅是 sql 。主要指那些非关系型的、分布式的,且通常不保证ACID的数据存储系统,主要表明MongoDB,Redis、CouchDB
Nosql: 泛指非关系型数据库,常与关系型数据库对比出现。
关系型数据库:关系型数据库是指采用了关系模型来组织数据的数据库
关系型数据库表明:SQL Server,Oracle,Mysql,PostgreSQL。
Nosql兴起的缘由
当今的互联网上诸多项目,因为面向的用户众多,一般都会伴随着大量的数据处理,而旧有的sql查询方式,在面临较大规模的数据操做的时候,就会显得力不从心。在以下状况下,关系型数据库下的技术每每难以很好的解决:
High performance:对数据库的高并发读写需求。例如实时统计在线人数,热门帖子点击次数,投票记录等。
Huge Storage:对海量数据的高效存储和访问需求。例如在QQ,微信等用户天天产生的巨大的信息量中如何极短期内精确的定位到须要的数据
High Scalability && High Avaiability:对数据库的高扩展性和可用性需求。例如功能常常被拓展的各类项目。
主流Nosql产品
键值对存储数据库:
1.1 相关产品:Tokyo,Cabinet/Tyrant,Voldemort,Berkeley DB
1.2 应用方向:内容缓存,经常使用于处理大量数据的高访问负载
1.3 数据模型:一系列键值对
1.4 优点 :快速查询
1.5 缺点:数据存储时候缺乏结构化
列表存储数据库:
2.1 相关产品:Cassandra,HBase,Riak
2.2 应用方向:分布式的文件系统
2.3 数据模型:以列簇式存储,将同一列数据存在一块儿
2.3 优点:查找速度块,可扩展性强,更容易进行分布式扩展
2.5 缺点:功能相对局限
文档型数据库:
3.1 相关产品:CouchDB,MongoDB
3.2 应用方向:Web应用(与 key-value 相似,value 是结构化的)
3.3 数据模型:一系列键值对
3.3 优点:数据结构要求不严格
3.5 缺点:查询性能不高,并且缺少统一的查询语法
图形数据库:
4.1 相关产品:Neo4J,InfoGrid,Infinite Graph
4.2 应用方向:社交网络
4.3 数据模型:图结构
4.3 优点:利用图结构相关算法
4.5 缺点:须要对整个图作计算才能得出结果,不容易作分布式集群方案
Nosql的特色
易扩展:不一样于关系型数据库,非关系型数据库数据之间无关系,这样就很是容易扩展。也为结构层面上的扩展带来了可能
大量数据,高性能:非关系型数据库有很是高的读写性能,尤为在大量的数据下。这得益于它的无关系性,数据库的结构简单
灵活的数据模型:Nosql无需事先为存储的数据创建字段,随时能够存储自定义的数据格式。而在关系数据库里,增删字段是一件很是麻烦的事情。若是i是很是大数据量的表,增长字段将尤其麻烦。算法

高可用性:Nosql在不太影响性能的状况下,就能够方便的实现高可用的架构。好比Cassandra,HBase模型,经过复制模型也能够实现高可用

原文连接:https://blog.csdn.net/qq_3665...sql