gpt4 book ai didi

数据结构不断增长的 MongoDB 性能

转载 作者:IT王子 更新时间:2023-10-29 05:56:20 25 4
gpt4 key购买 nike

假设我们正在设计一个新系统并决定使用 MongoDB 作为主数据库。数据模式非常类似于带有 [增长] 评论的博客。

在《MongoDB Developers》一书中,Tip #6: Do not embed fields that have unbound growth,它说不断地将数据附加到数组的末尾是低效的(但它也暗示注释是一个“奇怪的”边缘情况”)。

假设我们的新系统就像博客中的那些“评论”——一直在动态增长,但有时也会更改或删除。

因此,在认识到使用 MongoDB 可能存在性能问题后,还有什么其他替代数据库(必须是水平可扩展的数据库)可以满足此目的? (我们不介意使用 MongoDB 作为我们的主要数据库,而是将“评论”分离到备用数据库。有哪些可用选项?

注意事项:

Redis 以 Hashes 作为其数据类型的特性符合我们对“评论”数据结构的描述——不断增长但有时会被修改或删除——但我们不需要一个纯内存数据库(我们不希望当数据可以持久保存到磁盘时,专用这么多 RAM)——否则这将很适合我们的问题

使用 CouchDB 怎么样?我们没有对此产品进行调查。它如何处理不断增长的数据结构?

最佳答案

补充一下 Thilo 上面所说的,“不嵌入具有无限增长的字段”的原因是因为这种类型的文档大小扩展可能导致 MongoDB 在超过当前分配给它的空间时不得不移动文档。您可以在 Padding Factor 中阅读更多相关信息文档部分。

这些类型的移动相对昂贵,尤其是如果它们经常发生的话。因此,限制主要集合(最近的 X 等)中等效评论的大小(基本上限制增长),甚至可能预填充该文档字段(基本上是手动填充)以减少由评论添加/更改引起的移动可能这对你来说是值得的。

关于数据结构不断增长的 MongoDB 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306815/

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