1

我们处于每天需要存储数百万条记录的情况,


数据结构模型:

  • ID
  • 日期
  • 标题
  • ...
  • 数据 [RAW TEXT]

我们的 [RAW TEXT] 每次都不同,从 ~30KB 到 300KB,平均为 100Kbs。我们永远不需要搜索 [RAW TEXT],也可能每个月需要通过 id 访问其中一些数据。

现在我们将所有它们(属性和数据)存储在 MongoDb 中,因为 MongoDb 中的 INSERT 速度和性能非常好。但是我们的数据库大小正在快速增长,现在大约是 85GB,在接下来的几天里,这对我们来说将是一个问题。

这是一个问题,你将如何实现它?
更改数据库和软件结构以在文件系统(/datafiles/x/y/z/id.txt)中存储数据[RAW TEXT] 真的值得吗?
此更改是否会对系统性能产生重大影响?

4

1 回答 1

2

如果您关心存储,为什么不压缩文本数据呢?体面的文本压缩率应该是 10:1 左右。

就个人而言,我会采用基于文件的方法,因为听起来您的主要功能是归档。我会将所有信息写入重新生成数据库记录所需的文件中,将其压缩并根据密钥将其存储在某种合理的目录结构中。原因是启动新磁盘或将部分数据移至归档存储很容易。

如果您每天通过压缩收集 1000 万条记录,则相当于每天大约 100GB。您可能想要制作一个“磁盘 ID”作为密钥的一部分,因为按照这个速度,您将在大约 3 周内填满一个 2TB 磁盘。即使是 20TB 的 RAID 阵列也会在大约 6 个月内填满。

于 2013-05-09T22:31:16.910 回答