我想知道MySQL或ElasticSearch是从根本上讲是构建此项目的更好工具吗?
以以下格式提供PING响应时间的数据库:
Timestamp Host Success ResponseTime
2020-02-01 12:00:00 1.1.1.1 1 5.00
2020-02-01 12:00:01 1.1.1.1 1 4.00
2020-02-01 12:00:01 8.8.8.8 1 2.00
2020-02-01 12:00:02 1.1.1.1 1 4.50
2020-02-01 12:00:02 8.8.8.8 1 1.80
2020-02-01 12:00:02 1.1.1.1 0 NULL
我想按1分钟,5分钟,1小时一组汇总此数据,并收集最小/最大/平均响应时间,并计算错误数量(成功= 0)。
目标很简单:
我将使用MySQL来构建和增量扩充一个Summary表,该表按1分钟间隔细分。它还包括最小,最大,计数,总和。
我希望它可以缩小到十分之一行,从而使查询的运行速度快十倍。
一旦我对这一切感到满意,我将拥有主表PARTITION BY RANGE()
,这样我就可以定期有效地DROP PARTITION
。
同时,我将汇总表保留为“ forever”。
我说的是COUNT
和SUM
,不是AVG
。 AVG
可以从(总和)除以(计数总和)得出。
http://mysql.rjweb.org/doc.php/summarytableshttp://mysql.rjweb.org/doc.php/partitionmaint