更新或删除哪个快?

时间:2012-01-11 06:16:45

标签: mongodb

我正在使用mongoDB作为应用程序。此应用程序需要高频率的读取,写入和更新。

我只关心更新和删除功能。这两者中哪一个很快。我正在为一个属性索引集合。更新和删除都符合我的目的,但我不确定哪一个是完美的并且有更好的表现。

2 个答案:

答案 0 :(得分:1)

我建议您不要决定是否使用更新或删除解决方案,而是更多地了解SafeMode属性。

SafeMode.True表示您期望来自服务器的响应,其中包含命令成功或失败的确认。此选项会阻止执行,直到您收到服务器的响应为止。

SafeMode.False不会指望任何响应,它基本上是一个乐观的命令。您希望它能够正常工作,但无法确认。等待响应不会阻止执行,因此,您获得了性能,因为您只需要发送请求。

现在您需要考虑删除将释放服务器上的空间,但您将丢失数据的历史记录和可跟踪性。更新将允许您保留历史记录条目,但您需要确保您的查询排除了“标记为删除”条目。

显然,您可以找到删除或更新是否更好,但我认为重点应放在是使用SafeMode true还是false来提高性能。

答案 1 :(得分:1)

一个相当奇怪的问题,但这里有你可以做出决定的事情:

  • 删除会使收藏品保持最佳尺寸。更新(我假设你的意思是将删除标志设置为true)将导致不断增长的集合,最终会使事情变得更慢。
  • 就地更新(由于尺寸增加而导致文档不必移动的更新)总是比需要(重新)移动文档的更新或删除更快。
  • 安全=错误写入将显着提高更新和删除的吞吐量,但代价是无法检查更新/删除是否成功。