存储数百万100kb / Ave的最佳方式。记录

时间:2013-05-09 22:10:38

标签: asp.net mongodb performance database-design database

我们需要每天存储数百万条记录,


数据结构模型:

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

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

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

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

1 个答案:

答案 0 :(得分:2)

如果您担心存储,为什么不压缩文本数据?体面文本压缩应该是大约10:1。

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

如果您每天通过压缩收集1000万条记录,则每天约为100GB。您可能希望将“磁盘ID”设置为密钥的一部分,因为按此速率,您将在大约3周内填满2TB磁盘。即使是20TB的RAID阵列也会在大约6个月内填满。