MySQL 慢查询日报 2026-09-01

统计范围:2026-09-01 00:00:00 ~ 23:59:59(Asia/Shanghai,UTC+8),环境 staging
数据来源:ES 慢日志索引(@timestamp,UTC 换算 [2026-09-01T00:00:00+08:00, 2026-09-02T00:00:00+08:00)),经 MCP es_slow_logs 工具获取,Top 10 按耗时降序
生成时间:2026-09-02 10:0X +08:00 | 分析工具全程只读(connect / describe_schema / count_estimate / explain,未执行任何写操作、DDL 或 KILL)

一、统计概览

指标值
昨日慢查询总数1,350 条
Top10 耗时区间300.00s ~ 1,125.29s
涉及实例staging/tw8591(192.168.8.27:3306)、staging/hk8591(192.168.8.27:3307)
涉及库表t8_game.t8_embeddings_cache、game.t8_embeddings_cache、hk8591.h8_telescope_entries、t8_extends.telescope_entries
慢因分布备份全表扫描大结果集 3 条(Top1~3);锁等待超时 7 条(Top4~10,telescope_entries INSERT 恰好卡在 ~300.00s 阈值)

总体结论:昨日无业务 SELECT 缺索引类慢查询进入 Top10。Top3 均为 backup 账号(mysqldump,SQL_NO_CACHE)对宽行 JSON/longtext 表的全表导出,属于备份代价问题;Top4~10 全部是 Laravel Telescope 写入 t8_extends.telescope_entries 的 INSERT 恰好停在 ~300.00 秒(Lock_time 为 0、rows 为 0),是典型的锁等待超时(innodb_lock_wait_timeout=300s)特征,且多条与备份窗口(01:29~01:30 备份同一实例)重叠。

二、Top10 明细

#耗时(s)库.表SQL 摘要用户/来源Rows examined/sent慢因类型
11,125.29t8_game.t8_embeddings_cacheSELECT /*!40001 SQL_NO_CACHE */ * FROM ...(mysqldump 全表导出)backup @192.168.8.8279,835 / 79,835大结果集传输(全表扫描+JSON 宽行)
2814.76game.t8_embeddings_cache同上 mysqldump 全表导出backup @192.168.8.8255,291 / 55,291大结果集传输(全表扫描+JSON 宽行)
3300.61hk8591.h8_telescope_entriesmysqldump 全表导出backup @192.168.8.27191,431 / 191,431大结果集传输(longtext 宽行,~127MB/全表)
4300.00t8_extends.telescope_entriesINSERT INTO telescope_entries (batch_id, content, ...)a8591 @192.168.8.820 / 0锁等待(恰卡 ~300.00s 超时阈值)
5300.00t8_extends.telescope_entriesINSERT(同上,SocialiteWasCalled 事件)a8591 @192.168.8.820 / 0锁等待
6300.00t8_extends.telescope_entriesINSERT(同上)a8591 @192.168.8.820 / 0锁等待
7300.00t8_extends.telescope_entriesINSERT(同上,RequestWasMatched 事件)a8591 @192.168.8.820 / 0锁等待
8300.00t8_extends.telescope_entriesINSERT(同上,uuid 重复出现,疑似重试)a8591 @192.168.8.820 / 0锁等待(含重复 uuid 重试风暴特征)
9300.00t8_extends.telescope_entriesINSERT(同上)a8591 @192.168.8.820 / 0锁等待
10300.00t8_extends.telescope_entriesINSERT(同上)a8591 @192.168.8.820 / 0锁等待

三、逐条分析与优化建议

Top1 / Top2:mysqldump 导出 t8_embeddings_cache(1,125s / 815s)

  1. 备份时间与业务/Telescope 写入高峰错开(本次 01:29~01:30 的备份与 telescope_entries INSERT 锁等待在时间上重叠)。
  2. 若该缓存表可重建,备份时用 --ignore-table 排除,或改用可增量方式;staging 环境尤其如此。
  3. 长期看 vector json 建议改存外部向量库/对象存储,表中只留引用,可同时大幅缩小备份与查询代价。

Top3:mysqldump 导出 hk8591.h8_telescope_entries(300.61s)

Top4 ~ Top10:INSERT INTO t8_extends.telescope_entries 锁等待超时(各 ~300.00s)

  1. 错峰:把 mysqldump 安排到 Telescope 写入低谷,且避免与 API 压测/定时任务同窗(本次 01:29~01:30 备份、04:05 前后均有慢日志聚集)。
  2. staging 关闭或降采样 Telescope(TELESCOPE_ENABLED=false 或只记录异常请求),从源头消灭这批 INSERT。
  3. 应用侧对 INSERT 设置较短超时并加指数退避重试,避免 uuid 重复重试堆积。
  4. 如保留 Telescope,考虑 innodb_lock_wait_timeout 在 staging 调小(如 30s)以快速失败,避免连接被拖 300s。

四、数据来源与生成时间