【发布时间】:2013-12-09 16:51:32
【问题描述】:
我刚刚从 mysql 切换到使用 mongoDB,它非常棒,但我正在努力处理 db 数据大小..
我每天大约有 700 个文档,每个文档里面都嵌入了大约 900 个 cmets。
平均对象大小约为 53k(这只是几个小时),因此通过简单的数学计算,它应该是 53*700 = 37MB。但总大小约为 250MB(storageSize)(仅 2h!)
所以,我每天会创建超过 1GB 的数据,在 mysql 中大约是 100mb/天(甚至更少)。
这正常吗?我该如何处理?谢谢!
【问题讨论】:
-
您多久使用一次 cmets 更新文档?你用什么运算符?
-
每分钟嵌入一次,更新和 $push 在 cmets{} 数组中。所以它每分钟大约 700 个嵌入(一天有 1440 分钟,但它不是 24 小时工作的,这就是为什么每个文档大约有 900 个嵌入)。谢谢!
-
是的,您可能会得到“siwss cheese”效应,基本上是您遭受碎片的困扰,您可以通过运行修复数据库或更改架构以排除 cmets 来解决此问题。
-
唯一的方法是改变模式,MongoDB 使用单个连续的硬盘空间来存储文档,因此它只有一个硬盘访问来获取它,不幸的是这确实意味着一个不断不断增长的文档会不断移动创建碎片,唯一的解决办法是改变您的应用程序的工作方式
-
不,应该是超音速的,就像刺猬一样
标签: mysql mongodb database-design database nosql