统计范围:2026-10-27 00:00:00 ~ 23:59:59(Asia/Shanghai)· 环境:staging
数据来源:MCPes_slow_logs/es_search(ES 索引mysql_slow-*,按@timestampUTC 过滤)
| 指标 | 数值 |
|---|---|
| 慢查询总条数 | 1,581 条 |
| 累计耗时 | ≈ 15,850 s(约 4.4 小时) |
| 归一化 SQL 指纹数 | 585 个 |
| 耗时最大单条 | 1,531 s(backup 全表导出 t_item_modi_histories) |
按用户耗时分布(Top):
| 用户 | 条数 | 累计耗时 (s) | 说明 |
|---|---|---|---|
| backup | 413 | 11,813 | mysqldump 全表导出(备份模式,单独标注) |
| 8591 | 352 | 1,391 | 业务账号(hk8591/tw8591 相关) |
| sonic | 166 | 767 | 含大量慢 commit; |
| jmysql | 297 | 535 | 监控采集(SHOW ENGINE INNODB STATUS / Ping) |
| a8591 | 118 | 505 | 业务账号 |
| databasus_backup | 12 | 325 | 备份 |
| a591 / anylink / bee 等 | ~200 | ~460 | 其他业务账号 |
| # | 耗时 (s) | 库.表 / SQL 摘要 | 用户 | 来源实例 | Rows_sent / Examined | 慢因判断 |
|---|---|---|---|---|---|---|
| 1 | 1531.3 | t8891.t_item_modi_histories 全表导出 | backup | staging/8891 (LAN_addcn_84) | 5,693,964 / 5,693,964 | 备份全表扫描(EXPLAIN: type=ALL, rows≈502万) |
| 2 | 1152.3 | t8891.t_sele_item_infos 全表导出 | backup | staging/8891 (LAN_addcn_84) | 3,290,762 / 3,290,762 | 备份全表扫描(EXPLAIN: type=ALL, rows≈300万) |
| 3 | 480.7 | t8891.yahoo_car_details 全表导出 | backup | staging/8891 (LAN_addcn_84) | 16,681 / 16,681 | 备份导出 + 宽行大结果集(URL/slug/text 大字段,仅 1.6 万行却耗时 480s) |
| 4 | 361.2 | t8891.t_subscription_push 全表导出 | backup | staging/8891 (LAN_addcn_84) | 39,105,741 / 39,105,741 | 备份全表扫描(EXPLAIN: type=ALL, rows≈3952万) |
| 5 | 300.2 | t8891.t_sele_item_photos 全表导出 | backup | staging/8891 (LAN_addcn_84) | 22,929,970 / 22,929,970 | 备份全表扫描(EXPLAIN: type=ALL, rows≈2180万) |
| 6 | 298.5 | anylink.access_audit 全表导出 | backup | staging/TD-slave (LAN_addcn_51) | 62,439,899 / 62,439,899 | 备份全表扫描(EXPLAIN: type=ALL, rows≈5795万) |
| 7 | 295.7 | t591.t1_daily_report 全表导出 | backup | staging/100-slave (LAN_addcn_46) | 30,407,965 / 30,407,965 | 备份全表扫描(EXPLAIN: type=ALL, rows≈2885万) |
| 8 | 275.4 | commit;(事务提交) | sonic | staging/8891 (LAN_addcn_84) | 0 / 0 | 大事务/组提交刷盘等待(详见 §四 深度分析) |
| 9 | 250.3 | anylink_corp.access_audit 全表导出 | backup | staging/TD-slave (LAN_addcn_51) | 56,935,701 / 56,935,701 | 备份全表扫描(EXPLAIN: type=ALL, rows≈5212万) |
| 10 | 223.8 | hk8591.h8_finance_account_logs 全表导出 | backup | staging/tw8591 (LAN_addcn_27_3307) | 13,603,708 / 13,603,708 | 备份全表扫描(表约 1,359 万行,实测在 hk8591 主库可见 DDL) |
Top10 结论:10 条中 9 条为 backup 账号的 mysqldump 全表导出,全部为 type=ALL 全表扫描、Lock_time 均 <0.001s(无锁等待),属「备份大结果集传输 + 全表扫描」,为常规备份开销,非业务劣化信号;第 8 条 commit; 见深度分析。
对全日 1,581 条慢日志做 SQL 指纹归一化(字符串/数字/IN 列表 → ?)后聚合,共 585 个模式。
| # | 条数 | 平均 (s) | 最大 (s) | 累计 (s) | 模式(SQL 骨架) | 用户 | 服务器 |
|---|---|---|---|---|---|---|---|
| 1 | 191 | 4.21 | 275.37 | 804 | commit; ⚠️ | sonic/jumper/bee/addcn8891_test/jumper_dev | LAN_addcn_27/37/84 |
| 2 | 172 | 1.47 | 2.76 | 253 | show engine innodb status (监控采集) | jmysql | LAN_addcn_27/37/40_3308/46 |
| 3 | 99 | 1.38 | 2.39 | 136 | # administrator command: ping; (连接探活) | 8591/jmysql | LAN_addcn_27/46 |
| 4 | 66 | 1.39 | 2.08 | 92 | rollback; | 8591 | LAN_addcn_27 |
| 5 | 65 | 1.16 | 1.36 | 76 | select i.*, coalesce(v.views_30d, ?) ... (列表页联表查询) | a591 | LAN_addcn_46 |
| # | 条数 | 平均 (s) | 最大 (s) | 累计 (s) | 模式(SQL 骨架) | 用户 | 备注 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 1531.3 | 1531.3 | 1,531 | select /*!40001 sql_no_cache */ * from t8891.t_item_modi_histories | backup | 【备份模式】 |
| 2 | 1 | 1152.3 | 1152.3 | 1,152 | select /*!40001 sql_no_cache */ * from t8891.t_sele_item_infos | backup | 【备份模式】 |
| 3 | 191 | 4.21 | 275.4 | 804 | commit; ⚠️ | sonic 等 | 见深度分析 |
| 4 | 19 | 28.93 | 113.6 | 550 | select sum(after_amount - before_amount) as balance from hk8591.h8_finance_account_logs where user_id = ? and sub_account = 11 🔴 | 8591 | 见深度分析(补充) |
| 5 | 1 | 480.7 | 480.7 | 481 | select /*!40001 sql_no_cache */ * from t8891.yahoo_car_details | backup | 【备份模式】 |
【备份模式】= user=backup(mysqldump 全表导出),按口径不触发深度分析。backup 用户全日共 413 条、累计 11,813s(含 databasus_backup 另 12 条/325s),条数与日常备份规模持平,未见明显环比异常。
⚠️ = 触发深度分析条件(非备份且条数 >100 或累计 >30min)。
🔴 = 未达触发阈值,但单条均值显著偏高(28.9s),已补充 explain 分析。
commit;(191 条 / 累计 804s / 最大 275s)⚠️commit 慢 = 事务提交时 redo 刷盘/组提交排队等待,而非 SQL 本身。LAN_addcn_84(staging/8891)昨日凌晨正执行大规模 mysqldump 备份(Top10 中 5 条 229~3910 万行级全表导出都在该实例),大量 SELECT SQL_NO_CACHE 扫描挤压 IO、拖长 fsync。应用侧 sonic 存在长事务/批量提交模式,遇到 IO 高峰时单次 commit 最长等 275s。innodb_flush_log_at_trx_commit 配置(staging 可评估设为 2)。SHOW ENGINE INNODB STATUS(172 条 / 累计 253s)⚠️LOCK_wait 相关 mutex 并生成完整 engine 状态文本,在并发繁忙实例上 1~3s 属常见;条数多(每分钟多实例采集)使其进入高频榜。long_query_time 豁免(如 pt-query-digest 采集时过滤 user=jmysql 的 SHOW 语句)。h8_finance_account_logs 余额汇总(19 条 / 平均 28.9s / 累计 550s)🔴SELECT sum(after_amount - before_amount) AS balance
FROM `hk8591`.`h8_finance_account_logs`
WHERE user_id = ? AND sub_account = 11;
access_type=ref,possible_keys=[asacca, idx_user_sub_account_id],key=asacca,used_key_parts=[user_id](只用了第一列!),rows_examined_per_scan=33,434,filtered=10%,sub_account = 11 仅作为 index_condition(ICP 过滤)。asacca (user_id, sub_account, course, created_at)、idx_user_sub_account_id (user_id, sub_account, id DESC)、PK(id)。sub_account 是 char(2),SQL 写 sub_account = 11(数字字面量)触发隐式类型转换,MySQL 无法把该条件作为索引 key part,只能用 user_id 前缀扫描后再过滤,单用户流水多的账号要回表/过滤数万行,平均 28.9s。sub_account = '11'(加引号,匹配 char 类型),即可完整命中 asacca(user_id, sub_account) 两列前缀,扫描量预计从 ~3.3 万行降到精确范围;sub_account 的数字字面量写法(grep sub_account = 11 / sub_account in (11,...)),统一改为字符串。h8_orders buyer_id 批量查询(52 条 / 平均 2.28s / 最大 15.5s)SELECT id, buyer_id, completed_at FROM h8_orders WHERE buyer_id IN (1010170, ...);
access_type=range,key=bica (buyer_id),rows_examined≈20/每值,cost 25.8 —— 索引本身健康。| 对象 | 问题 | 建议 | 优先级 |
|---|---|---|---|
hk8591.h8_finance_account_logs 余额 SUM | sub_account = 11 隐式类型转换,索引只命中 user_id | 改为 sub_account = '11';高频调用改余额快照/缓存 | 高 |
sonic 长事务 commit(LAN_addcn_84) | 大事务提交 + 备份 IO 高峰叠加,最长 275s | 拆小事务;备份错峰;评估 innodb_flush_log_at_trx_commit=2(staging) | 高 |
| backup 全表导出(Top10 中 9 条) | 大表全表扫描 + 大结果集传输,单表最长 1531s | 备份走从库/专用副本;对 t_subscription_push(3952万)、access_audit(5795万) 等审计/推送大表评估归档清理后再备份 | 中 |
| jmysql 监控 SHOW 语句进慢日志 | 采集固有开销,172 条/253s | 降频或采集侧过滤,非性能问题 | 低 |
h8_orders buyer_id IN 批量查询 | IN 列表过大 + 备份时段 IO 争抢 | 分批(≤50/批);索引已健康无需改动 | 低 |
t8891.yahoo_car_details 备份 | 仅 1.6 万行却 480s,text 宽行传输慢 | 备份脚本对含大 text 字段表启用 --skip-extended-insert 调优或压缩传输 | 低 |
es_slow_logs(top=10, env=staging, start=2026-10-27T00:00:00+08:00);高频模式:MCP es_search(索引 mysql_slow-*,search_after 分页,全日 1,581 条 / 1 页拉取完成)。connect / describe_schema / explain / count_estimate / find_instance,全程只读,分析后已 disconnect。