趋势1亿+行

ker*_*rem 6 sql

我有一个系统,每秒记录一些测量值.存储趋势数据的最佳方法是什么,这些数据是与特定秒对应的值?

1 day = 86.400 seconds
1 month = 2.592.000 seconds
Run Code Online (Sandbox Code Playgroud)

大约1000个值来跟踪每秒.

目前,有50个表格对每个20列的趋势数据进行分组.这些表包含超过1亿行.

    TREND_TIME datetime (clustered_index)
    TREND_DATA1 real
    TREND_DATA2 real
    ...
    TREND_DATA20 real
Run Code Online (Sandbox Code Playgroud)

Gil*_*lad 2

我会更改数据保存方法,而不是将“原始”数据保存为值,而是将 5-20 分钟的数据保存在数组(内存、BL 侧)中,使用基于 LZ 的算法压缩该数组,然后将数据存储在数据库作为二进制数据。另外,最好保存该二进制块的最大/最小/平均/等信息。

当您想要处理数据时,您可以一个接一个地处理数据块,这样您就可以为应用程序保持较低的内存配置文件。这种方法有点复杂,但在内存/处理方面非常可扩展。

希望这可以帮助。