mongodb中哪些运营成本低/高?
我正在阅读MongoDB,并试图了解它在哪里得到了最好的使用。有一个问题我看不到一个明确的答案,那就是哪些操作是便宜的还是昂贵的,以及在什么条件下 你能帮我澄清一下吗mongodb中哪些运营成本低/高?,mongodb,Mongodb,我正在阅读MongoDB,并试图了解它在哪里得到了最好的使用。有一个问题我看不到一个明确的答案,那就是哪些操作是便宜的还是昂贵的,以及在什么条件下 你能帮我澄清一下吗 谢谢。这与所有数据库系统没有太大区别 对索引数据的查询速度很快。对大量数据的查询是。。。慢点。 由于非规范化,如果没有索引,那么在基础上写入将很快,这就是为什么日志记录是基本用例 相反,当您有十亿个文档时,读取磁盘上(而不是RAM中)没有索引的数据可能会非常慢。人们常说mongodb的写入速度非常快。虽然他们确实不慢,但这是一个相
谢谢。这与所有数据库系统没有太大区别 对索引数据的查询速度很快。对大量数据的查询是。。。慢点。 由于非规范化,如果没有索引,那么在基础上写入将很快,这就是为什么日志记录是基本用例
相反,当您有十亿个文档时,读取磁盘上(而不是RAM中)没有索引的数据可能会非常慢。人们常说mongodb的写入速度非常快。虽然他们确实不慢,但这是一个相当夸张的说法。mongodb中的写吞吐量受到全局写锁的限制。是的,您听对了,在任何给定时刻,服务器上只能发生一次写操作 我还建议您利用mongodb的无模式特性,并将数据非规范化存储。通常可以只进行一次磁盘搜索来获取所有必需的数据(因为它们都在同一个文档中)。更少的磁盘搜索-更快的查询 若数据位于RAM中—根本不需要磁盘查找,则数据直接从内存中提供。所以,确保你有足够的内存 ,查询速度慢 持续写入一个大文档(例如,使用
$push
)并不快。文档将超出其磁盘边界,必须复制到另一个地方,这涉及到更多的磁盘操作
我同意@aurelineb,一些基本原则在所有数据库中都是通用的
更新
*自2011年以来,发布了几个主要版本的mongodb,改善了锁定情况(从服务器范围到数据库级别再到集合级别)。引入了一种新的存储引擎WiredTiger,它具有文档级锁。总而言之,从2018年开始,写入速度应该大大加快。根据我的实践,应该提到的一点是,mongodb不太适合报告,因为通常在报告中,您需要来自不同集合的数据(“连接”),而mongodb不提供聚合多个集合数据的好方法(而且不应该提供). 当然,对于某些报告,map/reduce或map/reduce可以很好地工作,但很少出现这种情况
对于一些人建议将数据迁移到关系数据库的报告,有很多报告工具。我听到你说的是“mongodb具有非常快的单个写入,但锁定系统限制您一次只能写入一个。”这是否适用于分片?不,分片缓解了这个问题。每个碎片都有自己的锁。Mongodb现在有连接:。