删除MongoDB中的昂贵操作?

时间:2011-05-22 05:29:12

标签: performance mongodb

我的部分网站迁移到MongoDB是邮件系统的迁移。我想弄清楚我是否应该实际从集合中删除记录,或者使用某些bool字段将其标记为已删除,当用户想要删除该消息时 - 该网站将是高负载所以我关注性能(而不关心磁盘空间)。

有什么想法吗?

1 个答案:

答案 0 :(得分:13)

tl; dr:删除。

MongoDB将数据存储在双链表中,因此删除结果会调整两个链接,即上一个文档的下一个链接和下一个文档的上一个链接。没有自动压缩。如果已经存储了值,则更新就会发生,更改一个值。现在......你认为,很棒,更新一个int而不是两个指针,肯定更快!不是这样 - 你现在需要索引这个标志并创建索引是“慢”。