- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在阅读 MongoDB,并试图了解它的最佳用途。我没有看到明确答案的一个问题是哪些操作便宜或昂贵,以及在什么条件下。
你能帮忙澄清一下吗?
谢谢。
最佳答案
人们经常声称 mongodb 的写入速度非常快。虽然它们确实并不慢,但这是夸大其词。 mongodb 中的写入吞吐量受到全局写入锁的限制。是的,你没听错,在任何给定时刻,服务器上只能发生 ONE* 写入操作。
另外我建议您利用 mongodb 的无模式特性并将数据非规范化存储。通常可以只进行一次磁盘搜索来获取所有需要的数据(因为它们都在同一个文档中)。更少的磁盘寻道 - 更快的查询。
如果数据位于 RAM 中 - 根本不需要磁盘寻道,则数据直接从内存中提供。因此,请确保您有足够的 RAM。
Map/Reduce , group , $where查询很慢。
继续写入一个大文档并不快(例如,使用 $push
)。该文档将超出其磁盘边界,必须复制到另一个地方,这涉及更多磁盘操作。
我同意@AurelienB,一些基本原则在所有数据库中都是通用的。
* 自 2011 年以来,发布了几个主要版本的 mongodb,改善了锁定情况(从服务器范围到数据库级到集合级)。引入了一个新的存储引擎,WiredTiger,它具有文档级锁。总而言之,在 2018 年,现在的写入速度应该会明显加快。
关于mongodb - mongodb中哪些操作便宜/昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8562282/
我正在阅读 MongoDB,并试图了解它的最佳用途。我没有看到明确答案的一个问题是哪些操作便宜或昂贵,以及在什么条件下。 你能帮忙澄清一下吗? 谢谢。 最佳答案 人们经常声称 mongodb 的写入速
我正在寻找一个主要来源(或一个非常好的解释)来支持在为 iPhone 编写软件时使用 autorelease 是危险的或过于昂贵的说法。 许多开发者都提出了这种说法,我什至听说 Apple 不推荐它,
我意识到这离微优化领域太远了,但我很想知道为什么调用 DateTime.Now 和 DateTime.UtcNow 如此“昂贵”。我有一个示例程序,它运行几个场景来做一些“工作”(添加到一个计数器)并
我是一名优秀的程序员,十分优秀!