学习笔记——nosql与mysql的区别
老猿也不得不用一下nosql啦~~~随便记一下相关知识点:学习笔记——nosql与mysql的区别
Nosql:不仅仅是SQL。它主要是指非关系型的、分布式的、通常不保证ACID的数据存储系统,主要指MongoDB、Redis、CouchDB
Nosql:通常指非关系数据库,通常与关系数据库进行比较。
关系数据库:关系数据库是使用关系模型组织数据的数据库
关系型数据库指:SQL Server、Oracle、Mysql、PostgreSQL。
Nosql的崛起
如今,互联网上的很多项目,由于用户数量庞大,会伴随着大量的数据处理,而老式的SQL查询方法,在面对更大规模的数据操作时,就会显得不够用。在以下情况下,关系数据库技术往往难以很好地解决:
高性能:对数据库并发读写要求高。例如,实时统计在线人数、热门帖子点击次数、投票记录等。
海量存储:对海量数据的高效存储和访问的要求。例如,在QQ、微信等用户每天产生的海量信息在很短的时间内准确定位到所需数据
高可伸缩性和高可用性:数据库的可伸缩性和可用性的要求。例子包括经常扩展功能的项目。
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应用(类似键-值,值是结构化的)
3.3数据模型:一系列键值对
3.3优点:数据结构要求不严格
3.5缺点:查询性能低,查询语法不统一
图数据库:
4.1相关产品:Neo4J、InfoGrid、Infinite Graph
4.2应用方向:社交网络
4.3数据模型:图结构
4.3优点:采用图结构相关算法
4.5缺点:需要计算整个图才能得到结果,不容易做出分布式聚类方案
特性
易于扩展:与关系数据库不同,非关系数据库在数据之间没有关系,因此易于扩展。这也使得在结构层面上进行扩展成为可能
大量数据,高性能:非关系数据库具有非常高的读写性能,特别是对于大量数据。这得益于它的非关系性质,数据库结构简单
灵活的数据模型:Nosql不需要预先为存储的数据创建字段,总是可以存储自定义的数据格式。在关系数据库中,添加和删除字段是一件非常麻烦的事情。如果I是一个非常大的数据表,增长字段将特别麻烦。算法
高可用性:Nosql使实现高可用性体系结构变得容易,而不会影响性能。例如,Cassandra, HBase模型,可以复制实现高可用性