You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Grafana中实现MySQL表行数随时间的累计增长可视化

在Grafana中绘制MySQL表的累计行数增长曲线

1. 编写累计统计的SQL查询

首先需要通过SQL计算每日新增行数,并生成累计值。根据你的表结构,使用窗口函数SUM() OVER()可以轻松实现累计统计:

基础版查询(无数据补全)

SELECT
  DATE(Timestamp) AS time,
  COUNT(ID) AS daily_new,
  SUM(COUNT(ID)) OVER (ORDER BY DATE(Timestamp)) AS cumulative_total
FROM your_table_name  -- 替换为你的实际表名
GROUP BY DATE(Timestamp)
ORDER BY time

补全日历版查询(解决无数据日期断层)

如果存在某天没有新增数据的情况,上面的查询会跳过该日期,导致图表出现断层。可以用生成连续日期的方式补全:

WITH date_range AS (
  -- 生成你需要的日期范围,这里示例从2023-06-21开始的6天,可按需调整
  SELECT DATE_ADD('2023-06-21', INTERVAL seq DAY) AS date
  FROM (
    SELECT 0 AS seq UNION ALL SELECT 1 UNION ALL SELECT 2 
    UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5
  ) AS seqs
)
SELECT
  dr.date AS time,
  COALESCE(COUNT(t.ID), 0) AS daily_new,
  SUM(COALESCE(COUNT(t.ID), 0)) OVER (ORDER BY dr.date) AS cumulative_total
FROM date_range dr
LEFT JOIN your_table_name t ON DATE(t.Timestamp) = dr.date  -- 替换为实际表名
GROUP BY dr.date
ORDER BY dr.date

2. Grafana面板配置步骤

  • 连接数据源:确保已在Grafana中添加并测试通过MySQL数据源,指向你的数据库。
  • 创建Time Series面板:新建面板时选择「Time series」类型(旧版本可选「Graph」)。
  • 配置查询:将上面的SQL语句粘贴到查询编辑器中,替换表名和日期范围。
  • 调整字段显示:在面板的「Fields」选项卡中,选择cumulative_total字段,设置为Line类型;若不需要显示每日新增,可隐藏daily_new字段。
  • 优化图表样式:
    • 在「Visualization」选项卡中,开启「Smooth」将线条调整为平滑曲线,模拟股票走势效果。
    • 设置Y轴标题为「累计行数」,X轴自动识别日期格式。
    • 根据数据时间范围调整面板的时间过滤器,确保显示完整的统计周期。

内容的提问来源于stack exchange,提问作者tera_789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:10:12