【发布时间】:2017-07-08 19:39:48
【问题描述】:
假设我们正在设计一个新系统并决定使用 MongoDB 作为主数据库。数据模式非常类似于具有 [增长] cmets 的博客。
在《MongoDB 开发人员》一书中,提示 #6:不要嵌入具有无限增长的字段,它说不断将数据附加到数组的末尾是低效的(但它也暗示 cmets 是一个“奇怪的边缘情况”)。
假设我们的新系统就像博客中的那些“cmets”——一直在动态增长,但有时也会发生变化或被删除。
那么,在认识到使用 MongoDB 可能存在性能问题之后,还有什么其他替代数据库(必须是水平可扩展的数据库)可以达到此目的? (我们不介意使用 MongoDB 作为我们的主数据库,但将“cmets”分离到备用数据库。有哪些可用选项?
注意事项:
将哈希作为其数据类型的 Redis 特性符合我们“cmets”数据结构的描述 - 不断增长,但有时会修改或删除 - 但我们不需要纯内存数据库(我们不希望当数据可以持久保存到磁盘时,专用这么多 RAM) - 否则这将非常适合我们的问题
使用 CouchDB 怎么样?我们没有对此产品进行调查。它在不断增长的数据结构中表现如何?
【问题讨论】:
标签: mongodb performance redis nosql