Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb中哪些运营成本低/高?_Mongodb - Fatal编程技术网

mongodb中哪些运营成本低/高?

mongodb中哪些运营成本低/高?,mongodb,Mongodb,我正在阅读MongoDB,并试图了解它在哪里得到了最好的使用。有一个问题我看不到一个明确的答案,那就是哪些操作是便宜的还是昂贵的,以及在什么条件下 你能帮我澄清一下吗 谢谢。这与所有数据库系统没有太大区别 对索引数据的查询速度很快。对大量数据的查询是。。。慢点。 由于非规范化,如果没有索引,那么在基础上写入将很快,这就是为什么日志记录是基本用例 相反,当您有十亿个文档时,读取磁盘上(而不是RAM中)没有索引的数据可能会非常慢。人们常说mongodb的写入速度非常快。虽然他们确实不慢,但这是一个相

我正在阅读MongoDB,并试图了解它在哪里得到了最好的使用。有一个问题我看不到一个明确的答案,那就是哪些操作是便宜的还是昂贵的,以及在什么条件下

你能帮我澄清一下吗


谢谢。

这与所有数据库系统没有太大区别

对索引数据的查询速度很快。对大量数据的查询是。。。慢点。 由于非规范化,如果没有索引,那么在基础上写入将很快,这就是为什么日志记录是基本用例


相反,当您有十亿个文档时,读取磁盘上(而不是RAM中)没有索引的数据可能会非常慢。

人们常说mongodb的写入速度非常快。虽然他们确实不慢,但这是一个相当夸张的说法。mongodb中的写吞吐量受到全局写锁的限制。是的,您听对了,在任何给定时刻,服务器上只能发生一次写操作

我还建议您利用mongodb的无模式特性,并将数据非规范化存储。通常可以只进行一次磁盘搜索来获取所有必需的数据(因为它们都在同一个文档中)。更少的磁盘搜索-更快的查询

若数据位于RAM中—根本不需要磁盘查找,则数据直接从内存中提供。所以,确保你有足够的内存

,查询速度慢

持续写入一个大文档(例如,使用
$push
)并不快。文档将超出其磁盘边界,必须复制到另一个地方,这涉及到更多的磁盘操作

我同意@aurelineb,一些基本原则在所有数据库中都是通用的


更新
*自2011年以来,发布了几个主要版本的mongodb,改善了锁定情况(从服务器范围到数据库级别再到集合级别)。引入了一种新的存储引擎WiredTiger,它具有文档级锁。总而言之,从2018年开始,写入速度应该大大加快。

根据我的实践,应该提到的一点是,mongodb不太适合报告,因为通常在报告中,您需要来自不同集合的数据(“连接”),而mongodb不提供聚合多个集合数据的好方法(而且不应该提供). 当然,对于某些报告,map/reduce或map/reduce可以很好地工作,但很少出现这种情况


对于一些人建议将数据迁移到关系数据库的报告,有很多报告工具。

我听到你说的是“mongodb具有非常快的单个写入,但锁定系统限制您一次只能写入一个。”这是否适用于分片?不,分片缓解了这个问题。每个碎片都有自己的锁。Mongodb现在有连接:。