什么是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_36654606/article/details/86667119
|
|