如何在保存到数据库之前合并数据?
How to consolidate data before saving to database?
我有进程从几台机器上检索 CPU、内存、磁盘使用情况,并将数据存储到 MySQL 数据库中。我想在折线图中绘制它们,例如 CPU 使用情况与日期或内存使用情况与日期。
几个月后,我的数据库中有数百万条数据。在选择一段时间内的数据做图表时,花费了大量的时间。 (已应用数据库规范化。)
在保存到数据库之前,是否有任何已知的统计方法可以将数据合并到分钟或小时?
或者我应该在网上搜索什么关键字来整合这些监测数据?
谢谢。
最好有完整的数据用于存储和合并数据用于构建图形等。您可以使用触发器、cron 作业、物化视图和其他类型的脚本来创建一组单独的合并数据。
另一种解决方案是创建临时的未合并数据集,然后将其压缩到主数据中所需的内容 table。
关于统计方法 - 您应该运用常识。有时您只需要 AVG 值,有时需要 MAX 或 MIN(我认为您希望看到 MAX CPU 使用情况、MIN 磁盘 space 剩余、MAX RAM 使用情况等)。
我有进程从几台机器上检索 CPU、内存、磁盘使用情况,并将数据存储到 MySQL 数据库中。我想在折线图中绘制它们,例如 CPU 使用情况与日期或内存使用情况与日期。
几个月后,我的数据库中有数百万条数据。在选择一段时间内的数据做图表时,花费了大量的时间。 (已应用数据库规范化。)
在保存到数据库之前,是否有任何已知的统计方法可以将数据合并到分钟或小时?
或者我应该在网上搜索什么关键字来整合这些监测数据?
谢谢。
最好有完整的数据用于存储和合并数据用于构建图形等。您可以使用触发器、cron 作业、物化视图和其他类型的脚本来创建一组单独的合并数据。
另一种解决方案是创建临时的未合并数据集,然后将其压缩到主数据中所需的内容 table。
关于统计方法 - 您应该运用常识。有时您只需要 AVG 值,有时需要 MAX 或 MIN(我认为您希望看到 MAX CPU 使用情况、MIN 磁盘 space 剩余、MAX RAM 使用情况等)。