b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

对比传统关系型,NoSQL有着更复杂的分类

电脑杂谈  发布时间:2021-05-06 15:02:11  来源:网络整理

与传统的关系相比,NoSQL具有更复杂的分类-键值,面向文档,列存储和图形。这是各种NoSQL的适用方案以及一些知名公司的程序选项的列表。

在过去的几年中,关系一直是数据持久性的唯一选择,并且数据工作人员仅考虑在这些传统(例如SQL Server,Oracle或MySQL)之间进行过滤。甚至做出一些默认选择。例如,那些使用.NET的用户通常会选择SQL Server。使用Java的人可能更喜欢Oracle,Ruby是MySQL,Python是PostgreSQL或MySQL,等等。

原因很简单。过去很长一段时间,关系的健壮性已在大多数应用程序中得到证明。我们可以使用这些传统很好地控制并发操作,事务等。但是,如果传统的关系一直如此可靠,那么NoSQL是什么? NoSQL之所以能够生存和发展,是因为NoSQL可以完成传统的关系无法做到的事情!

关系中的问题

阻抗不匹配

详解:主流NoSQL和应用场景

我们使用Python,Ruby,Java,.Net和其他语言编写应用程序。这些语言具有面向对象的共同特征。但是我们使用MySQL,PostgreSQL,Oracle和SQL Server,这些也有一个通用的功能关系。这涉及术语“阻抗不匹配”:存储结构是面向对象的,但是是关系的,因此,每次我们存储或查询数据时,都需要进行转换。像Hibernate和Entity Framework这样的ORM框架确实可以简化此过程,但是当对查询的高性能要求很高时,这些ORM框架就会被拉伸。

应用程序的规模变大

Web应用程序的规模越来越大。我们需要存储更多的数据,服务更多的用户,并需要更多的计算能力。为了应对这种情况,我们需要继续扩大。扩展有两种类型:一种是垂直扩展,这意味着购买更好的机器,更多的磁盘,更多的内存等。另一个是水平扩展,这意味着要购买更多计算机以形成集群。

在大范围内,垂直扩展没有太大的作用。首先,单台机器的性能提升需要大量开销,并且存在性能极限。在Google和Facebook的规模上,永远不可能使用一台机器来支持所有负载。考虑到这种情况,我们需要一个新的,因为关系在群集上不能很好地运行。是的,您也可以构建一个关系集群,但是它们使用共享存储,这不是我们想要的类型。因此,存在一个以Google,Facebook和Amazon为首的NoSQL时代,它试图处理更多的传输。

NoSQL时代

已经有许多NoSQL,例如MongoDB,Redis,Riak,HBase,Cassandra等。每个都具有以下特征之一:

NoSQL的类型

NoSQL可以大致分为4类:键值,面向文档,列族和面向图的。下面是这些类型的特征的列表。

一、键值

键值就像传统语言中使用的哈希表一样。您可以按键添加,查询或删除数据。鉴于使用主键进行访问,您将获得良好的性能和可伸缩性。

适用方案

websocket应用场景_内存应用场景_运营商大数据应用场景

存储用户信息,例如会话,配置文件,参数,购物车等。此信息通常链接到ID(键)。在这种情况下,键值是一个不错的选择。

不适用的情况

二、面向文档的

面向文档的以文档形式存储数据。每个文档都是一个独立的数据单元,是一系列数据项的集合。每个数据项都有一个名称和一个相应的值。该值可以是简单的数据类型,例如字符串,数字和日期等。它也可以是复杂类型,例如有序列表和关联的对象。数据存储的最小单位是文档。存储在同一表中的文档属性可以不同,并且数据可以以多种格式存储,例如XML,JSON或JSONB。

适用方案

不适用的情况

将交易添加到其他文档。面向文档的不支持文档之间的事务。如果有此需求,则不应使用此解决方案。

三、宽列存储/列族

列存储将数据存储在列族中,并且列族存储经常一起查询的相关数据。例如,如果我们有一个Person类,我们通常会一起查询他们的姓名和年龄,而不是工资。在这种情况下,姓名和年龄将被放在一个列族中,而薪水将在另一个列族中。

适用方案

不适用的情况

四、面向图形的

图允许我们以图的形式存储数据。实体将被视为顶点,而实体之间的关系将被视为边。例如,如果我们有三个实体,即史蒂夫·乔布斯,苹果和Next,那么将有两个“创建者”边缘将Apple和Next与史蒂夫·乔布斯联系起来。

适用方案

(编者注0:本文以下内容的英语来源:KristófKovács,由Bole Online-Tang Youhua翻译)NoSQL之间的差异远远超过了两个SQL之间的差异。这意味着软件设计师应在项目开始时选择合适的NoSQL。针对这种情况,下面是Cassandra,Mongodb,CouchDB,Redis,Riak,Membase,Neo4j和HBase之间的比较。

(编者注1:NoSQL:是一种革命性的运动,NoSQL的提倡者提倡使用非关系数据存储。当今的计算机体系结构在数据存储方面需要巨大的水平可扩展性,并且NoSQL致力于改变这种状态融业(尽管金融交易不是必需的,但是这些行业对的要求要比其高),写入的速度比读取的速度快,所以自然的特征是实时数据分析

8. HBase

HBase与ghshephard一起使用。

最佳应用方案

适用于首选BigTable且需要随机,实时访问大数据的情况。

例如:Facebook消息(更多常见用例即将推出)。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-373472-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...