【问题标题】:Best approach to store time series data for each product in a row in MySQL在 MySQL 中连续存储每个产品的时间序列数据的最佳方法
【发布时间】:2021-11-12 22:50:10
【问题描述】:

假设我们每天设置大约 20 个 GPS 设备。初始化过程后,每个设备将开始每小时向我们发送收到的数据。 我需要根据名称、类别、设备 ID、产品编号等为每个设备定义一行。对于每个设备,我必须存储一个每小时的时间序列数据,这些数据可能用于各种查询。 所以我会有一个不同设备的表和几个链接到它的时间序列数据。 这种情况的最佳方法是什么? 我应该定义 blob 列并将每个数据及其相应的时间戳存储在其中,还是应该为每一行创建一个 .csv 文件,然后将数据存储在该文件中?如果生成有点复杂的查询,这两种方法都会限制我。 或者有没有适合这种情况的方法,对MySQL的很多特性不是很熟悉。

【问题讨论】:

    标签: mysql time-series blob


    【解决方案1】:

    如果可能,您应该考虑使用针对时间序列优化的数据库,例如 InfluxDB 或 TimescaleDB (PostgreSQL)。 MySQL 可能会为小型数据集完成这项工作,但您可能很快就会遇到性能问题,并且缺少 InfluxDB 和/或 TimescaleDB 必须提供的一些常见时间序列功能,例如按时间段(小时、天、周)对原始数据点进行分组。

    【讨论】:

    • 谢谢你的回答,是的,我一直在寻找这个问题的解决方案,我熟悉了 PostgresSQL 和他在这个问题上的能力。但是,目前无法从 MySQL 切换到 PostgresSQL ,MySQL 的最佳解决方案是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2012-08-15
    • 1970-01-01
    相关资源
    最近更新 更多