我可以使用什么技术来存储数据

时间:2010-12-19 22:17:54

标签: c# .net mysql linq database-design

我有一个应用程序,我每0.1秒存储大约1kbyte的数据。这是36MByte /小时,或大约600MByte /天。

数据具有高度可压缩性,因此应在10:1和100:1之间压缩。所有数据都由时间戳引用。

我的问题是:我可以用什么技术来存储这些数据?

约束:

  • 随着数据库大小的增加,将数据插入数据库的时间不会增加。这个约束排除了Microsoft SQL Server(我们尝试了它,并且在5天之后它停止了,因为每个“插入”花了一分钟)。
  • 我们可以有效地暂停每天4小时的数据记录,这样我们就有时间进行压缩等。
  • 我们想与LINQ for .NET兼容,这意味着我们可能需要一个LINQ适配器(MySQL风格的接口可以)的数据库。

3 个答案:

答案 0 :(得分:3)

一种方法是简单地将传入的数据附加到磁盘上的文件中。一天之后,切换到一个新文件,然后生成一个进程来压缩和存储前一天的文件。

您似乎假设您需要将数据存储在数据库中,而不说明原因。你呢?

答案 1 :(得分:1)

如果你不能让SQL Server及时处理那么小的负载,那么我想知道如果你没有探索如何插入数据,是否有任何RDBMS对你有效。

您是否只是将一个非常简单的插入到一个没有其他索引/函数/进程阻塞/读取的表中(使用主键)?或者这个过程实际上比你正在谈论的这个简单/小插件更复杂?

如果您已经开始使用Linq了,您是否正在分析您的linq语句以确保您没有告诉ORM做一些愚蠢的事情?

答案 2 :(得分:1)

也许您可以将所有内容存储到二进制文件中,并将元数据存储到数据库中。