gpt4 book ai didi

performance - 在 MongoDB 中删除一项昂贵的操作吗?

转载 作者:IT老高 更新时间:2023-10-28 13:25:08 24 4
gpt4 key购买 nike

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

有什么想法吗?

最佳答案

编辑:这个答案是 2011 年的历史产物,它指的是 2019 年删除的旧 MMAPv1 引擎。但是,正如评论所指出的,删除是一次性操作,总是比总是检查标志便宜因此无论存储引擎内部如何,删除仍然是最佳选择。

tl;dr:删除。

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

关于performance - 在 MongoDB 中删除一项昂贵的操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6086245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com