📋 目录一、统计概览二、Top10 慢查询明细三、高频慢查询模式(指纹归一化聚合,共 1,43四、深度分析(connect → describ五、逐条优化建议汇总六、数据来源与生成说明

MySQL 慢查询日报 2026-09-27(staging)

统计口径:2026-09-27 00:00:00 ~ 23:59:59(Asia/Shanghai,ES 按 @timestamp UTC 换算)
数据来源:MCP addcn es_slow_logs / es_search(staging ES,索引 mysql_slow-*)
生成时间:2026-09-28 10:0x CST | 全程只读(SELECT/EXPLAIN/SHOW,无写入、无 KILL、无配置变更)

一、统计概览

指标数值
慢日志总条数1,436 条
累计耗时4.22 小时
其中 backup(mysqldump)409 条
非备份慢查询1,027 条,累计 57.9 分钟
覆盖实例(server_name)10 台(LAN_addcn_27 / 27_3307 / 37 / 40 / 40_3308 / 44 / 46 / 51 / 81 / 84)
慢查询用户 Topjmysql 541(监控)、backup 409、8591 150、sonic 112、a591 65、a8591 41

二、Top10 慢查询明细

#耗时user@实例SQL(截断)rows_examined/sent慢因类型
11554.6sbackup@staging/8891SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_item_modi_histories5,693,964 / 5,693,964备份大结果集传输
21103.0sbackup@staging/8891SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_sele_item_infos3,290,762 / 3,290,762备份大结果集传输
3527.6sbackup@staging/8891SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.yahoo_car_details16,681 / 16,681备份大结果集传输(宽行)
4363.2sbackup@staging/8891SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_subscription_push39,105,741 / 39,105,741备份大结果集传输
5293.6sbackup@staging/8891SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_sele_item_photos22,929,970 / 22,929,970备份大结果集传输
6292.9ssonic@staging/8891commit;0 / 0提交延迟(双一配置 + IO 争抢,详见 4.3)
7287.7sbackup@staging/100-slaveSELECT /*!40001 SQL_NO_CACHE */ * FROM t591.t1_daily_report29,818,694 / 29,818,694备份大结果集传输
8249.2sbackup@staging/TD-slaveSELECT /*!40001 SQL_NO_CACHE */ * FROM anylink_corp.access_audit56,478,005 / 56,478,005备份大结果集传输
9219.5sbackup@staging/TD-slaveSELECT /*!40001 SQL_NO_CACHE */ * FROM anylink.access_audit49,047,993 / 49,047,993备份大结果集传输
10212.6sbackup@staging/hk8591SELECT /*!40001 SQL_NO_CACHE */ * FROM hk8591.h8_finance_account_logs13,602,178 / 13,602,178备份大结果集传输

Top10 特征:9/10 为 mysqldump 全表导出(rows_examined == rows_sent,正常顺序扫,无需加索引),唯一业务项是 sonic 的 commit(纯提交延迟,rows=0)。备份集中于 8891 实例的大表(t_subscription_push 3900 万行、access_audit 4900~5600 万行),建议评估备份窗口与限速(--single-transaction 已隐含,可加 --max-allowed-packet/throttle 或物理备份替代超大表导出)。

三、高频慢查询模式(指纹归一化聚合,共 1,436 条)

归一化规则:字符串/数字字面量、IN 列表 → ?,保留库表与 SQL 骨架。

按条数 Top5

#条数累计耗时平均/最大user指纹
146613.2min1.70s / 3.0sjmysqlSHOW ENGINE INNODB STATUS
21129.8min5.24s / 292.9ssoniccommit
3461.8min2.31s / 16.6s8591select id,buyer_id,completed_at from h8_orders where buyer_id IN (?) and state=? order by created_at asc
4291.0min2.00s / 5.4sptSELECT s.SCHEMA_NAME ... GROUP_CONCAT(...)(pt 工具元数据巡检)
5230.4min1.11s / 1.3sa591SELECT * FROM house_repost WHERE ispay=? AND status=? AND type!=? ORDER BY rectime ASC

按累计耗时 Top5

#条数累计耗时平均/最大user指纹
1125.9min1554.6sbackupSELECT /*!? SQL_NO_CACHE */ * FROM t8891.t_item_modi_histories(备份)
2118.4min1103.0sbackupSELECT /*!? SQL_NO_CACHE */ * FROM t8891.t_sele_item_infos(备份)
346613.2min1.70s / 3.0sjmysqlSHOW ENGINE INNODB STATUS
41710.1min35.58s / 126.4s8591SELECT sum(after_amount - before_amount) FROM h8_finance_account_logs where user_id=? and sub_account=? ⚠️ 触发深度分析
518.8min527.6sbackupSELECT /*!? SQL_NO_CACHE */ * FROM t8891.yahoo_car_details(备份)

判定规则(非备份 条数>100 或 累计>30min)触发:SHOW ENGINE INNODB STATUS(466 条)、commit(112 条)→ 深查见 4.1/4.3;h8_finance_account_logs 余额汇总虽仅 17 条但单条 35.6s、累计 10.1min,且正是 Top10 备份同表,一并深查(4.2)。备份模式(user=backup)条数 409,与常规日量级一致,未见环比翻倍,不做深度分析。

四、深度分析(connect → describe_schema → explain,全只读)

4.1 SHOW ENGINE INNODB STATUS(jmysql,466 条,13.2min)

4.2 h8_finance_account_logs 余额汇总(8591@staging/hk8591,17 条,avg 35.6s,max 126.4s)

代表 SQL:SELECT sum(after_amount - before_amount) as balance FROM h8_finance_account_logs WHERE user_id=? AND sub_account=?

  1. 应用侧把入参改为字符串:sub_account = '11',即可完整命中 asacca(user_id, sub_account, ...) 前两列(零 DDL,立竿见影);
  2. 中期加覆盖索引避免回表:ALTER TABLE h8_finance_account_logs ADD INDEX idx_user_sub_amounts (user_id, sub_account, after_amount, before_amount);(13.6M 行,低峰执行);
  3. 余额这类高频读考虑落缓存/余额表快照,避免对流水表实时 SUM;
  4. 备份错峰(见 4.3)。

4.3 commit(sonic@staging/8891,112 条,avg 5.2s,max 292.9s)

  1. 备份错峰/限速(mysqldump 加 throttle,或改凌晨低峰、避开业务批处理);
  2. staging 如无强一致要求,可评估 innodb_flush_log_at_trx_commit=2、sync_binlog=100(注意:这是配置变更建议,本次未做任何变更,需 DBA 评审);
  3. 提高 innodb_io_capacity 至磁盘实际能力(SSD 可 2000+),并确认 binlog 与数据盘 IO 隔离。

4.4 附带核查的两条高频业务 SQL

现有索引 bica (buyer_id, created_at)、sieca (state, is_exclusive, canceled_at)。EXPLAIN 走 bica range(仅 buyer_id 列生效),state 为附加条件回表过滤 + filesort。

建议:加 (buyer_id, state, created_at) 复合索引,等值列在前、排序列在后,可消 filesort。

表为 MyISAM,仅 KEY type (type, post_id)。EXPLAIN:access_type=ALL 全表扫 195,963 行 + filesort,SELECT * 还带出 log mediumtext 宽行。

建议:① 加索引 (status, ispay, type, rectime);② 去掉 SELECT *,按需取列(尤其排除 log);③ MyISAM 表级锁 + 不支持崩溃安全,建议规划迁移 InnoDB。

五、逐条优化建议汇总

优先级对象动作
P0hk8591 应用侧sub_account 入参加引号(= '11'),完整命中 asacca 前两列
P1hk8591.h8_finance_account_logs低峰加覆盖索引 (user_id, sub_account, after_amount, before_amount)
P18891 / TD-slave 备份mysqldump 限速/错峰,超大表(>3000 万行)评估物理备份
P1hk8591.h8_orders加索引 (buyer_id, state, created_at) 消 filesort
P2t591.house_repost加 (status, ispay, type, rectime) 索引;去 SELECT *;规划 MyISAM→InnoDB
P2staging/8891DBA 评审双一配置/IO capacity(staging 可放宽)
P3监控账号jmysql/pt 的巡检命令按 user 过滤出慢日志告警

六、数据来源与生成说明