【问题标题】:How to efficiently store this big amount of data? Database or what?如何有效地存储这么大的数据量?数据库还是什么?
【发布时间】:2016-01-13 02:23:26
【问题描述】:

我必须做一个每秒检查 35 项更改的应用程序。每个项目有 3 个值,每个值可以容纳 5 个字节,因此项目有 15 个字节。值不会每秒都在变化,但没有规律,可能会不断变化,也可能会停顿一段时间......

所以我做了一个小计算,我得到了每秒将所有字段存储在关系数据库 (SQL) 上的结果:

35 * 15 字节 * 60 秒 * 60 分钟 * 24 小时 * 365 = 16.5 Gb 一年。

这对于 SQL 数据库来说太过分了。你会做些什么来减少数据的大小?我在考虑仅在发生更改时存储数据,但是您需要在更改完成时存储数据,如果数据更改过于频繁,这可能需要比其他方法更多的空间。

我不知道除了 SQL 数据库之外是否还有其他存储库更符合我的要求。

你怎么看?

编辑:更多信息。

除了我可以创建以节省空间的数据之外,数据之间没有任何关系。我只需要存储这些数据并查询它。数据可能看起来像(将所有数据放在一个表中并每秒保存数据):

  Timestamp    Item1A      Item1B     Item1C     Item2A    Item2B ....

   whatever     1.33        2.33       1.04       12.22     1.22 
   whatever     1.73        2.33       1.04       12.23     1.32
   whatever     1.23        2.33       1.34       12.22     1.22
   whatever     1.33        2.31       1.04       12.22     1.21

我能感觉到必须是更好的解决方案而不是这种方法......

编辑 2:

我通常会在一段时间内查询有关某个Item的值的数据,通常我不会从多个Item中查询数据...

【问题讨论】:

  • 我要补充一点:您没有计算记录和索引的开销,您可能需要添加时间戳!
  • 您需要这些数据做什么?只是为了储存吗?需要做分析吗?它的“关系”部分在哪里?它只是一个带有一些分区的大表吗?
  • 不知道数据是什么样子以及您将如何处理它,因此无法正确回答您的问题。
  • 我已编辑问题以向我们提供您要求的信息。
  • 您能否举例说明您打算执行的查询类型?

标签: database database-design repository


【解决方案1】:

这对于 SQL 数据库来说太多了

什么时候过分了?
对于几乎所有的 RDBMS 来说,这真的是小菜一碟(每年大约 17GB 的数据)。

MySQL 可以做到这一点,PostgreSQL、Firebird 和许多其他软件也可以,但 Sqlite 之类的则不行。我会自己选择 PostgreSQL。

如今,拥有数百 TB 数据的 SQL 数据库并不少见,因此 17GB 真的没什么好考虑的。更不用说 10 年内达到 170GB(使用当时的机器)。

即使考虑到其他数据和索引每年达到 30GB,对于 SQL 数据库来说仍然可以。

编辑
考虑到您的结构,在我看来这很可靠,您需要的最少的东西已经存在,并且没有您不需要的额外内容。
如果不使用弊大于利的技巧,您将无法获得比这更好的效果。

【讨论】:

  • 好吧,我只使用 Microsoft SQL 服务器,它只能处理 10Gb 的最新版本 (SQL2008R2) 数据库。旧版本处理 4Gb 和 2Gb。
  • 您使用免费版本的 Microsoft SQL Server Express。这是一个很大的区别。去寻找其他免费的并且可以完成工作的东西。
  • 或支付完整的 MS SQL :-)
  • @xanatos:我使用付费的 MS SQL,它可以处理最好的 10Gb 数据库文件。
  • @SoMoS msdn.microsoft.com/en-us/library/ms143432.aspx 数据库大小 524,272 TB,文件大小(数据)16 TB...嗯...为数据和日志添加多个文件:-)(属性->文件->添加...并为数据库数据选择行,为日志文件选择日志)
【解决方案2】:

我目前正在考虑使用压缩文件而不是 SQL 数据库。我会用我得到的信息更新帖子。

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2017-11-07
    • 2011-06-07
    • 2013-12-28
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多