统计口径:2026-09-27 00:00:00 ~ 23:59:59(Asia/Shanghai,ES 按 @timestamp UTC 换算)
数据来源:MCP addcnes_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) |
| 慢查询用户 Top | jmysql 541(监控)、backup 409、8591 150、sonic 112、a591 65、a8591 41 |
| # | 耗时 | user@实例 | SQL(截断) | rows_examined/sent | 慢因类型 |
|---|---|---|---|---|---|
| 1 | 1554.6s | backup@staging/8891 | SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_item_modi_histories | 5,693,964 / 5,693,964 | 备份大结果集传输 |
| 2 | 1103.0s | backup@staging/8891 | SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_sele_item_infos | 3,290,762 / 3,290,762 | 备份大结果集传输 |
| 3 | 527.6s | backup@staging/8891 | SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.yahoo_car_details | 16,681 / 16,681 | 备份大结果集传输(宽行) |
| 4 | 363.2s | backup@staging/8891 | SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_subscription_push | 39,105,741 / 39,105,741 | 备份大结果集传输 |
| 5 | 293.6s | backup@staging/8891 | SELECT /*!40001 SQL_NO_CACHE */ * FROM t8891.t_sele_item_photos | 22,929,970 / 22,929,970 | 备份大结果集传输 |
| 6 | 292.9s | sonic@staging/8891 | commit; | 0 / 0 | 提交延迟(双一配置 + IO 争抢,详见 4.3) |
| 7 | 287.7s | backup@staging/100-slave | SELECT /*!40001 SQL_NO_CACHE */ * FROM t591.t1_daily_report | 29,818,694 / 29,818,694 | 备份大结果集传输 |
| 8 | 249.2s | backup@staging/TD-slave | SELECT /*!40001 SQL_NO_CACHE */ * FROM anylink_corp.access_audit | 56,478,005 / 56,478,005 | 备份大结果集传输 |
| 9 | 219.5s | backup@staging/TD-slave | SELECT /*!40001 SQL_NO_CACHE */ * FROM anylink.access_audit | 49,047,993 / 49,047,993 | 备份大结果集传输 |
| 10 | 212.6s | backup@staging/hk8591 | SELECT /*!40001 SQL_NO_CACHE */ * FROM hk8591.h8_finance_account_logs | 13,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 或物理备份替代超大表导出)。
归一化规则:字符串/数字字面量、IN 列表 → ?,保留库表与 SQL 骨架。
| # | 条数 | 累计耗时 | 平均/最大 | user | 指纹 |
|---|---|---|---|---|---|
| 1 | 466 | 13.2min | 1.70s / 3.0s | jmysql | SHOW ENGINE INNODB STATUS |
| 2 | 112 | 9.8min | 5.24s / 292.9s | sonic | commit |
| 3 | 46 | 1.8min | 2.31s / 16.6s | 8591 | select id,buyer_id,completed_at from h8_orders where buyer_id IN (?) and state=? order by created_at asc |
| 4 | 29 | 1.0min | 2.00s / 5.4s | pt | SELECT s.SCHEMA_NAME ... GROUP_CONCAT(...)(pt 工具元数据巡检) |
| 5 | 23 | 0.4min | 1.11s / 1.3s | a591 | SELECT * FROM house_repost WHERE ispay=? AND status=? AND type!=? ORDER BY rectime ASC |
| # | 条数 | 累计耗时 | 平均/最大 | user | 指纹 |
|---|---|---|---|---|---|
| 1 | 1 | 25.9min | 1554.6s | backup | SELECT /*!? SQL_NO_CACHE */ * FROM t8891.t_item_modi_histories(备份) |
| 2 | 1 | 18.4min | 1103.0s | backup | SELECT /*!? SQL_NO_CACHE */ * FROM t8891.t_sele_item_infos(备份) |
| 3 | 466 | 13.2min | 1.70s / 3.0s | jmysql | SHOW ENGINE INNODB STATUS |
| 4 | 17 | 10.1min | 35.58s / 126.4s | 8591 | SELECT sum(after_amount - before_amount) FROM h8_finance_account_logs where user_id=? and sub_account=? ⚠️ 触发深度分析 |
| 5 | 1 | 8.8min | 527.6s | backup | SELECT /*!? 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,与常规日量级一致,未见环比翻倍,不做深度分析。
SHOW ENGINE INNODB STATUS(jmysql,466 条,13.2min)long_query_time(或按 user 过滤告警),避免监控命令淹没慢日志;治本在错峰备份。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=?
PRIMARY KEY (id)KEY asacca (user_id, sub_account, course, created_at)KEY idx_user_sub_account_id (user_id, sub_account, id DESC)access_type=ref, key=asacca, used_key_parts=[user_id](key_length=8,仅用第 1 列), sub_account 仅作为 index_condition 下推,filtered=10%。sub_account 是 char(2),SQL 传的是数字 sub_account = 1,发生隐式类型转换,第 2 列无法作 ref/range,只能 ICP 过滤——大账户(流水多的会员)一次回表扫描几十万行求 SUM。sub_account = '11',即可完整命中 asacca(user_id, sub_account, ...) 前两列(零 DDL,立竿见影);ALTER TABLE h8_finance_account_logs ADD INDEX idx_user_sub_amounts (user_id, sub_account, after_amount, before_amount);(13.6M 行,低峰执行);commit(sonic@staging/8891,112 条,avg 5.2s,max 292.9s)innodb_flush_log_at_trx_commit=1 且 sync_binlog=1(双一),innodb_io_capacity=200,innodb_buffer_pool_size=2G;当前 Threads_running=2、无行锁等待(Innodb_row_lock_current_waits=0)。innodb_flush_log_at_trx_commit=2、sync_binlog=100(注意:这是配置变更建议,本次未做任何变更,需 DBA 评审);innodb_io_capacity 至磁盘实际能力(SSD 可 2000+),并确认 binlog 与数据盘 IO 隔离。h8_orders WHERE buyer_id IN (...) AND state=? ORDER BY created_at(46 条,avg 2.31s):现有索引 bica (buyer_id, created_at)、sieca (state, is_exclusive, canceled_at)。EXPLAIN 走 bica range(仅 buyer_id 列生效),state 为附加条件回表过滤 + filesort。
建议:加 (buyer_id, state, created_at) 复合索引,等值列在前、排序列在后,可消 filesort。
t591.house_repost WHERE ispay=? AND status=? AND type!=? ORDER BY rectime(23+18 条,a591@staging/100):表为 MyISAM,仅 KEY type (type, post_id)。EXPLAIN:access_type=ALL 全表扫 195,963 行 + filesort,SELECT * 还带出 log mediumtext 宽行。
建议:① 加索引 (status, ispay, type, rectime);② 去掉 SELECT *,按需取列(尤其排除 log);③ MyISAM 表级锁 + 不支持崩溃安全,建议规划迁移 InnoDB。
| 优先级 | 对象 | 动作 |
|---|---|---|
| P0 | hk8591 应用侧 | sub_account 入参加引号(= '11'),完整命中 asacca 前两列 |
| P1 | hk8591.h8_finance_account_logs | 低峰加覆盖索引 (user_id, sub_account, after_amount, before_amount) |
| P1 | 8891 / TD-slave 备份 | mysqldump 限速/错峰,超大表(>3000 万行)评估物理备份 |
| P1 | hk8591.h8_orders | 加索引 (buyer_id, state, created_at) 消 filesort |
| P2 | t591.house_repost | 加 (status, ispay, type, rectime) 索引;去 SELECT *;规划 MyISAM→InnoDB |
| P2 | staging/8891 | DBA 评审双一配置/IO capacity(staging 可放宽) |
| P3 | 监控账号 | jmysql/pt 的巡检命令按 user 过滤出慢日志告警 |
es_slow_logs(start=2026-09-27T00:00:00+08:00, end=2026-09-28T00:00:00+08:00, top=10, env=staging,total=1436);明细拉取 es_search mysql_slow-*,size=5000 + search_after 翻页,实际 1,436 条(单页取尽,无丢页)。connect / describe_schema / explain / show_variables / show_status,均在分析后 disconnect。