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

标签 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 风格的接口(interface)就可以)的数据库。

最佳答案

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

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

关于c# - 我可以使用什么技术来存储数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485428/

相关文章:

c# - 定时器使用标签

.net - Windows 文件系统中是否有为每个文件预先计算的哈希值?

java - 从 MySQL 数据库获取存储过程

c# - 无法使用 C# 将带 [] 的索引应用于类型为 'System.Array' 的表达式

c# - 如何模拟 IConfiguration.GetValue

jquery - 插件无法加载

c# - 如果不使用异常,哪种技术是正确的?

php - 将数据库数据转换为 utf8 - 正确的方法是什么?

mysql - 将字符串从 base 16 转换为 36 对 mysql 中的所有值给出相同的结果

c# - Elmah DDL 在由 context.Database.ExecuteSqlCommand (EF4.1) 运行时给出 sql 错误