ReadWrite

如果使用NoSQL数据库-是-对您和您的公司都有好处

如今,技术领域中非关系数据库的激增可能使您认为这些数据管理工具(也称为NoSQL数据库)最终将使传统的关系数据库灭绝。

不是这样这些数据库类型中的每一种都最适合于非常不同类型的工作负载,这将防止任何一个都使另一个陷入困境。这意味着IT和其他管理人员将不得不确定哪种方法最适合手头的任务。

在这个由两部分组成的系列中,我’ll examine the capabilities of both NoSQL and relational 资料库 to help you make the right decisions for your organization.

“ NoSQL”?更像“不仅是SQL”

马上,NoSQL数据库便是唯一的,因为它们通常独立于关系数据库中的结构化查询语言(SQL)。关系数据库都使用SQL作为特定于域的语言 特设 查询,而非关系数据库则没有这种标准查询语言,因此它们可以使用所需的任何内容。如果需要,可以包含SQL。

也可以看看: 关系数据库没有死—哎呀,它们甚至都没有睡觉

NoSQL数据库旨在在速度和容量方面出类拔萃。为了做到这一点,NoSQL软件将使用可以吓relation关系数据库用户的技术,例如不保证所有数据在系统中始终保持一致。

这是使用关系数据库的一个关键结果,因为在进行财务交易(例如在Amazon上购买商品)时,数据库必须非常确保一个账户的借方金额与另一账户同时借方的金额相同。

因为在单个事务中需要进行如此多的来回读写活动,所以关系数据库永远无法跟上使像亚马逊这样的公司运转所必需的速度和扩展。

NoSQL数据库供应商首席执行官Bob Wiederhold表示 Couchbase,NoSQL数据库的体系结构和功能为NoSQL用户带来了四个主要优势。

变大或回家

易于扩展是Wiederhold强调的第一个方面。他说,可以扩展NoSQL数据库,例如Couchbase和10Gen的MongoDB,以相对容易地处理更大的数据量。

如果您的公司突然发现自己一夜之间就被成功吸引了,例如,客户大量涌入您的网站,那么关系数据库就必须精心复制和重新分区,以便进行扩展以满足新的需求。

Wiederhold列举了社交和移动游戏供应商为这种情况的典型例子。认可或一些适时的推文可能会使半休眠游戏服务器加速运转,并使其在短短几个小时内达到满负荷运行。由于非关系数据库的分布式特性,要扩展NoSQL,您所需要做的就是向群集中添加计算机以满足需求。

无需恐惧

性能是NoSQL数据库可以超越的另一种方式。首先,每次将新服务器添加到NoSQL数据库集群中时,都会增加性能,这是因为您需要在公式中添加另一个处理器。

除了扩展优势之外,NoSQL工具的体系结构还有助于提高性能。如果一个关系数据库有成千上万个表,那么数据处理将对该数据产生更多的锁定,并大大降低数据库的性能。

由于NoSQL数据库的数据一致性模型较弱,因此可以牺牲一致性来提高效率。在Wiederhold的社交游戏示例中,如果用户更新了他或她的个人资料,则不会立即在整个数据库中更新该个人资料的新信息,而不会真正降低游戏性能。这意味着资源可以专用于其他事情,例如跟踪有关兽人的游戏兽人。

欲望的对象

当应用程序开发人员必须使用关系数据库中的数据时,由于数据映射和阻抗问题,有时可能会很麻烦。在NoSQL数据库中,这通常不是问题,因为数据的存储方式不同。

例如,对于面向文档的NoSQL数据库,数据仅以以下格式存储:文档。毕竟,由于文档是对象,所以倾向于以面向对象的方式思考的程序员将更加熟悉处理此类数据。

这种较弱的一致性模型有助于程序员,工具,因为他们的应用不必严格遵守数据一致性要求。这使得编码变得更简单,并且(通过扩展)变得更快。

停机时间?什么停机时间?

Wiederhold的第四个示例是NoSQL优势列表的一个新示例。非关系型数据库并不是专门为完成此任务而设计的,但事实证明,在这种情况下它们已经很熟练。

Wiederhold说,由于它们的分布式性质,NoSQL数据库几乎可以始终保持打开状态。对于无法在短时间内崩溃的网络和移动业务而言,这是一个巨大的优势。

通过一些高级计划,可以在数据库仍在热运行时执行软件更新和硬件升级。尝试使用关系数据库来做到这一点,而不必将其关闭,否则您将陷入困境。

获取其中名称=结论的部分

NoSQL数据库的优势听起来很不错,而且对于正确的用例而言,它们确实是。如果您公司的数据集规模保持相对恒定,或者增长缓慢,那么您几乎不需要迁移到非关系系统。

如果组织需要突如其来的增长,敏捷开发或高性能,那么您应该查看NoSQL数据库类别,然后看看适合您的数据库。

图片由 快门