当参数设置'safe = True'时,性能下降mongodb

时间:2013-08-15 16:57:11

标签: python mongodb

我有以下代码:

dbh.postings.update({"word" : word},{"$pushAll":{"postings":self.postings[word]}}, safe=True, upsert=True)  

表演比较:

在3060行上插入/更新(word - >帖子)

  • 将'safe'设置为True:3.7s
  • 没有'安全'设置为True:0.4s

这怎么可能?为什么使用参数'safe'设置的操作是如此之慢?

结构:

{ "_id" : ObjectId("520d08f5c9aaeee8311e2e7c"), "postings" : [ [ 12, 1 ], [ 14, 1 ] ], "word" : "95" }

更新:“发布”:[ [ 12, 1 ], [ 14, 1 ] ]其中[ 14, 1 ]对的字段添加了$ pushAll

1 个答案:

答案 0 :(得分:1)

是的,那是预期的。

安全关闭意味着它只承认使用套接字的操作,但是安全上它实际上会做与SQL技术相同的事情,并确保操作实际上转到MongoDb等。

然而,至于您的更新需要这么长时间,我们无法告知没有更多信息。例如,您要发送到该更新语句的索引,文档结构和参数。