- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NoSQL与关系型数据库全面对比
2021-06-21
我们总在说各种数据库的使用,以及各个数据库的优缺点,每个数据库都有本人的所擅长的领域,但选择什么样的数据库才是重点,那么问题来了,数据库到底是怎样划分的,有什么讲究呢?
数据库大致分为两大类:关系型数据库和非关系型数据库
关系型数据库
顾名思义,就是表与表之间有关系,平常我们所用到的MSSQL Server、Oracle、Mysql等都是关系型数据库,它们是建立在关系模型基础上的数据库,依靠表、字段等关系模型,结合集合代数等数学方法来处理数据。
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即便不是每个元组都需要全部的字段,但数据库会为每个元组安排全部的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库功能瓶颈的一个因素。
并且数据库的数据次要存储在磁盘。
数据库的 SQL 语句强大,支持更为简单的计算。
NoSQL
就是表与表之间没有直接关系,创建的话也不用遵照三大范式,并且是以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以依据需要添加一些本人的键值对,这样就不会局限于固定的结构,可以削减一些时间和空间的开销。可以处理超大量的数据,运转在廉价的PC服务器集群上,能很大程度上的节省开销。
NoSQL 的数据次要存储在内存中(部分可以长久化到磁盘),而且数据结构比较简约,虽然能处理很多的问题,但是其功能到底是有限的,不如数据库的 SQL 语句强大,支持更为简单的计算。
再次,NoSQL 并不完全平平稳定,由于它基于内存,一旦停电或者机器毛病数据就很简约丢失数据,其长久化力量也是有限的,而基于磁盘的数据库则不会消灭这样的问题。最终,其数据完整性、事务力量、平安性、牢靠性及可扩展性都远不及数据库。
Nosql没有行、列的概念,用Key-Value的方式来存储数据,集合就相当于“表”,文档就相当于“行”。一般而言,Nosql型数据库数据模型比较简约,需要机警性更强的IT 系统且对数据库功能要求较高,不需要高度的数据全都性,对于给定key,比较简约映射简单值的环境,因而被广泛应用于大数据分析等方面。
NoSQL与关系型数据库对比
1、存储格式
关系型数据库:表格式,行和列
NoSQL:文档、键值对、图结构
2、存储规范
关系型数据库:规范性,避开反复
NoSQL:鼓舞冗余
3、存储扩展
关系型数据库:纵向扩展(横向扩展有限)
NoSQL:横向扩展,分布式
4、查询方式
关系型数据库:结构化查询
NoSQL:非结构化查询言语SQL
5、事务
关系型数据库:支持事务
NoSQL:不支持事务全都性
6、功能
关系型数据库:读写功能差
NoSQL:读写功能高
7、成本
关系型数据库:成本高
NoSQL:简约易部署,开源,成本低
8、存储方式
关系型数据库:数据次要存储在磁盘中
NoSQL:数据次要存储在内存中(部分可以长久化到磁盘)
9、建表准绳
关系型数据库:建立在关系模型基础上的数据库,依靠表、字段等关系模型,以列或字段构建关联
NoSQL:数据模型比较简约,用Key-Value的方式来存储数据,集合就相当于“表”,文档就相当于“行”,不需要高度的数据全都性
建表方式如下图:
从事务上具体分析区分
关系型数据库的最大特点就是事务的全都性
传统的关系型数据库读写操作都是事务的,具有ACID的特点,这个特性使得关系型数据库可以用于几乎全部对全都性有要求的系统中,如典型的银行系统。
但是,在网页应用中,尤其是SNS应用中,全都性却不是显得那么重要,用户A看到的内容和用户B看到同一用户C内容更新不全都是可以容忍的,或者说,两个人看到同一好友的数据更新的时间差那么几秒是可以容忍的,因而,关系型数据库的最大特点在这里已经无用武之地,最少不是那么重要了。
相反地,关系型数据库为了维护全都性所付出的巨大代价就是其读写功能比较差,而像微博、facebook这类SNS的应用,对并发读写力量要求极高,关系型数据库已经无法应付(在读方面,传统上为了克服关系型数据库缺陷,提高功能,都是添加一级memcache来静态化网页,而在SNS中,变化太快,memchache已经无能为力了)。
因而,这个时候就必需用新的一种数据结构存储来代替关系数据库。NOSQL应运而生,正是由于NOSQL不需要高度的数据全都性,对于给定key,比较简约映射简单值的环境, 读写功能高,就可以处理上述的种种问题。
关系数据库的另一个特点就是其具有固定的表结构
正由于这样,因而,其扩展性极差,而在SNS中,系统的升级,功能的添加,往往意味着数据结构巨大变动,这一点关系型数据库也难以应付,需要新的结构化数据存储。
于是,非关系型数据库就又有用武
您可能关注的文档
- Kafka日志存储详解.docx
- Keepalived+LVS+nginx搭建nginx高可用集群.docx
- LinkedIn架构演化历史解析.docx
- Kubernetes决定弃用Docker,到底会影响到谁?.docx
- Linux查看实时网卡流量的几种方式.docx
- Linux与JVM的内存关系.docx
- Loki :一个可扩展,高可用性,多用户的日志聚合系统.docx
- logback异步输出日志深入分析.docx
- LSM树在HBase中的应用.docx
- Maven远程仓库的各种配置.docx
- Openapi 接口设计思路.docx
- pandas DataFrame基础运算以及空值填充.docx
- Pandas专家总结:指定样式保存excel数据的 “N种” 姿势!.docx
- Pandas处理w条数据,最终生成w条!.docx
- Prometheus原理和源码分析.docx
- pypy真的能让python比c还快?.docx
- Python . 的首个 PEP 诞生,内置类型 zip() 将迎来新特性.docx
- Python 为什么要有 pass 语句?.docx
- Python GUI 利用Tkinter制作签名设计软件!.docx
- Python 之父为什么嫌弃 lambda 匿名函数?.docx
文档评论(0)