这怎么可能? NoSQL有什么能比一些RDBMS提供更高的写入吞吐量?是否可扩展性?
答案 0 :(得分:2)
一些noSQL系统基本上只是持久性键/值存储(如Project Voldemort)。如果您的查询类型为“查找给定键的值”,则此类系统将(或至少应该)比RDBMS更快,因为它只需要具有更小的功能集。
另一种流行的noSQL系统是文档数据库(如CouchDB)。这些数据库没有预定义的数据结构。它们的速度优势在很大程度上依赖于非规范化并创建一个数据布局,该布局是根据您将在其上运行的查询量身定制的。例如,对于博客,您可以将博客文章及其评论保存在文档中。这减少了对连接和查找的需求,使您的查询更快,但也可能降低您的查询灵活性。
周围有许多NoSQL解决方案,每个解决方案都有自己的优点和缺点,所以必须采取以下措施。
但实际上,许多NoSQL数据库所做的事情都依赖于非规范化,并尝试针对非规范化的情况进行优化。例如,假设您正在阅读博客文章及其在面向文档的数据库中的评论。通常,评论将与帖子本身一起保存。这意味着一起检索所有这些内容会更快,因为它们存储在同一个地方而您不必执行连接。
当然,您可以在SQL中执行相同操作,并且当需要性能时,非规范化是一种常见做法。只是许多NoSQL解决方案从一开始就被设计为总是以这种方式使用。然后,您可以获得通常的权衡:例如,在上面的示例中添加注释会更慢,因为您必须使用它保存整个文档。一旦你进行了非规范化处理,你就必须在应用程序中保持数据的完整性。
此外,在许多NoSQL解决方案中,不可能进行任意连接,因此任意查询。有些数据库,比如CouchDB,要求您在需要的查询之前进行思考,并在数据库中进行准备。
总而言之,它归结为期望非规范化架构并针对该情况优化读取,这适用于非高度关系且需要比写入更多读取的数据。
This link解释了很多地方: RDBMS - >数据完整性是一个关键特性(可以减慢一些操作,如写作) NoSQL - >速度和水平可扩展性势在必行(因此这种速度的速度非常快)
AAAND ......关于NoSQL的事情是NoSQl无法以任何方式与SQL进行比较。 NoSQL是所有非SQL的持久性技术的名称。文档DB,键值DB,事件DB都是NoSQL。它们在几乎所有方面都是不同的,无论是保存数据的结构,查询,性能还是可用的工具。
希望理解
是有用的答案 1 :(得分:2)
总之,构建NoSQL数据库可以轻松扩展到大量服务器(通过对数据项进行分片/水平分区),并且具有容错能力(通过复制,预写日志记录和数据修复机制)。此外,NoSQL支持实现高写入吞吐量(通过使用内存缓存和仅附加存储语义),低读取延迟(通过缓存和智能存储数据模型)和灵活性(无架构设计和非规范化)。
自:
Open Journal of Databases(OJDB) 第1卷,第2期,2014年 www.ronpub.com/journals/ojdb ISSN 2199-3459
https://estudogeral.sib.uc.pt/bitstream/10316/27748/1/Which%20NoSQL%20Database.pdf - 第19页