📋 目录统计概览Top10 明细(按单条耗时)高频慢查询模式(指纹聚合,取样 20,401 条触发深度分析的模式(条数>100 或 累计>30逐条优化建议汇总

MySQL 慢查询日报(线上 prod8891)2026-10-27

统计概览

项目值
统计范围2026-10-27 00:00:00 ~ 23:59:59(Asia/Shanghai)
环境prod-8891
慢日志条数(ES mysql-slow_*)20,401 条(指纹聚合取样 20,401 条)
Top10 单条最慢297.75 s(user=t8891,YCJF_t8891_26)
非备份模式最大累计5.40h(3475 次 × 5.60 s)
备份模式(user 含 backup/databasus_backup)0 条、累计 0.0s(单独标注,不触发深析)
监控巡检类(jmysql/proxysql_monitor 或 information_schema)3 条、累计 11.9s(多为 # Schema: 空导致采集端 _grokparsefailure、无库名;单独标注,不触发深析)
深析模式 explain 成功率8/8(100%)
数据来源ES mysql-slow_*(@timestamp)+ MCP 只读 MySQL(describe_schema/explain)
生成时间2026-10-28 09:32(Asia/Shanghai)

Top10 明细(按单条耗时)

#耗时(s)库.表行数 sent/examineduser / server慢因分类
1297.75t8891.t_carinfo_coupon_activity2,087 / 655,375t8891 / YCJF_t8891_26扫描行数远大于返回行数(655,375/2,087)
2291.40t8891.t_carinfo_coupon_activity2,086 / 655,378t8891 / YCJF_t8891_25扫描行数远大于返回行数(655,378/2,086)
3290.68t8891.t_carinfo_coupon_activity2,088 / 655,375t8891 / YCJF_t8891_25扫描行数远大于返回行数(655,375/2,088)
4288.45t8891.t_carinfo_coupon_activity2,086 / 655,378t8891 / YCJF_t8891_25扫描行数远大于返回行数(655,378/2,086)
5288.15t8891.t_carinfo_coupon_activity2,086 / 655,378t8891 / YCJF_t8891_25扫描行数远大于返回行数(655,378/2,086)
6288.06t8891.t_carinfo_coupon_activity2,088 / 655,375t8891 / YCJF_t8891_25_3307扫描行数远大于返回行数(655,375/2,088)
7287.84t8891.t_carinfo_coupon_activity2,086 / 655,375t8891 / YCJF_t8891_25_3307扫描行数远大于返回行数(655,375/2,086)
8284.24t8891.t_carinfo_coupon_activity2,086 / 655,375t8891 / YCJF_t8891_26扫描行数远大于返回行数(655,375/2,086)
9284.17t8891.t_carinfo_coupon_activity2,086 / 655,644t8891 / YCJF_t8891_25扫描行数远大于返回行数(655,644/2,086)
10282.31t8891.t_carinfo_coupon_activity2,086 / 655,644t8891 / YCJF_t8891_25_3307扫描行数远大于返回行数(655,644/2,086)

高频慢查询模式(指纹聚合,取样 20,401 条)

按条数 Top5

#模式(指纹摘要)条数平均(s)累计serveruser
1select * from t_member_devices where (m_id = ? and hash = ?) limit ?;3,4755.605.40hYCJF_t8891_24,YCJF_t8891_25,YCJF_t8891_2t8891
2select f_id, COUNT(*) count from t_carinfo_favorite where m_id IN (?...) and type = ? and exists (select * from t_carinfo_search_base_kind where t_carinfo_favorite.f_id = t_carinfo_search_base_kind.kind_id and sale_stop = ?) group by f_id order by count desc limit ?;2,4155.163.46hYCJF_t8891_24,YCJF_t8891_25,YCJF_t8891_2t8891
3select * from t_carinfo_inquiry_agent where expire_status = ? and expire_time <= ?;1,4401.9246.1minYCJF_t8891_24t8891
4select max(record_time) as aggregate from t_carinfo_inquiry_call_log;1,4321.1928.4minYCJF_t8891_24t8891
5select * from t_carinfo_inquiry_agent where contact_status = ? and expire_status = ?;1,2291.9540.0minYCJF_t8891_24,YCJF_t8891_25,YCJF_t8891_2t8891

按累计耗时 Top5

#模式条数平均(s)累计serveruser
1select * from t_member_devices where (m_id = ? and hash = ?) limit ?;3,4755.605.40hYCJF_t8891_24,YCJF_t8891_25,YCJF_t8891_2t8891
2select f_id, COUNT(*) count from t_carinfo_favorite where m_id IN (?...) and type = ? and exists (select * from t_carinfo_search_base_kind where t_carinfo_favorite.f_id = t_carinfo_search_base_kind.kind_id and sale_stop = ?) group by f_id order by count desc limit ?;2,4155.163.46hYCJF_t8891_24,YCJF_t8891_25,YCJF_t8891_2t8891
3
select t_carinfo_coupon_activity.* from t_carinfo_coupon_activity left join t_carinfo_coupon_activity_callback as b on t_carinfo_coupon_activity.id = b.activity …(点击展开完整 SQL)
select t_carinfo_coupon_activity.* from t_carinfo_coupon_activity left join t_carinfo_coupon_activity_callback as b on t_carinfo_coupon_activity.id = b.activity_item_id left join t_carinfo_agent_call_to_bidding as c on t_carinfo_coupon_activity.m_id = c.m_id and c.type = ? and phase = ? and c.created_at > ? where (t_carinfo_coupon_activity.type = ?) and b.payment_time is null and t_carinfo_coupon_activity.m_id > ? and c.id is null;
22282.021.72hYCJF_t8891_25,YCJF_t8891_25_3307,YCJF_t8t8891
4select * from t_carinfo_inquiry_agent where expire_status = ? and expire_time <= ?;1,4401.9246.1minYCJF_t8891_24t8891
5select * from t_carinfo_inquiry_agent where contact_status = ? and expire_status = ?;1,2291.9540.0minYCJF_t8891_24,YCJF_t8891_25,YCJF_t8891_2t8891
备份模式全天 0 条 / 0.0s,未触发深度分析(如条数环比异常翻倍再人工介入)。

触发深度分析的模式(条数>100 或 累计>30min,非备份,最多 8 个)

1. select * from t_member_devices where (m_id = ? and hash = ?) limit ?; —— 3,475 次 × 5.60s = 5.40h

select * from `t_member_devices` where (`m_id` = 342660 and `hash` = 'a1d452fa6cca718863b68a6d3aacadb5') limit 1;
select * from `t8891`.`t_member_devices` where (`m_id` = 342660 and `hash` = 'a1d452fa6cca718863b68a6d3aacadb5') limit 1;
#表访问类型使用索引候选索引预扫行数过滤后
1t_member_devicesreft_member_devices_m_id_indext_member_devices_m_id_index800,31410.0%
ALTER TABLE `t8891`.`t_member_devices` ADD INDEX `idx_m_id_hash` (`m_id`, `hash`);

2. select f_id, COUNT(*) count from t_carinfo_favorite where m_id IN (?...) and type = ? and exists (select * from t_carinfo_search_base_kind where t_carinfo_favor —— 2,415 次 × 5.16s = 3.46h

select f_id, COUNT(*) count from `t_carinfo_favorite` where `m_id` in (0, 241577, 259127, 284409, 337644, 369188, 369764, 370110, 383989, 445429, 448063, 458542, 471184, 477385, 522519, 546847, 590532, 657787, 668431, 748450, 778305, 784287, 786865, 838187, 871225, 878317, 894845, 907617, 913416, 921488, 922843, 937305, 949317, 952984, 953014, 964766, 970930, 983286, 994569, 998284, 1022318, 1023093, 1031960, 1064576, 1065186, 1068416, 1069426, 1072908, 1087590, 1102707, 1125856, 1131812, 1154738, 1170426, 1176927, 1181485, 1222067, 1261290, 1261920, 1264991, 1272389, 1275263, 1276465, 1277750, 1310970, 1348028, 1397362, 1402461, 1407630, 1414409, 1439173, 1439641, 1455237, 1535139, 1569137) and `type` = 3 and exists (select * from `t_carinfo_search_base_kind` where `t_carinfo_favorite`.`f_id` = `t_carinfo_search_base_kind`.`kind_id` and `sale_stop` = 0) group by `f_id` order by `count` desc limit 6;
select f_id, COUNT(*) count from `t8891`.`t_carinfo_favorite` where `m_id` in (0, 241577, 259127, 284409, 337644, 369188, 369764, 370110, 383989, 445429, 448063, 458542, 471184, 477385, 522519, 546847, 590532, 657787, 668431, 748450, 778305, 784287, 786865, 838187, 871225, 878317, 894845, 907617, 913416, 921488, 922843, 937305, 949317, 952984, 953014, 964766, 970930, 983286, 994569, 998284, 1022318, 1023093, 1031960, 1064576, 1065186, 1068416, 1069426, 1072908, 1087590, 1102707, 1125856, 1131812, 1154738, 1170426, 1176927, 1181485, 1222067, 1261290, 1261920, 1264991, 1272389, 1275263, 1276465, 1277750, 1310970, 1348028, 1397362, 1402461, 1407630, 1414409, 1439173, 1439641, 1455237, 1535139, 1569137) and `type` = 3 and exists (select * from `t8891`.`t_carinfo_search_base_kind` where `t_carinfo_favorite`.`f_id` = `t_carinfo_search_base_kind`.`kind_id` and `sale_stop` = 0) group by `f_id` order by `count` desc limit 6;
#表访问类型使用索引候选索引预扫行数过滤后
1t_carinfo_favoritereftypem_id,f_id,type,m_id_type570,74250.25%
ALTER TABLE `t8891`.`t_carinfo_favorite` ADD INDEX `idx_type_sale_stop_m_id_count` (`type`, `sale_stop`, `m_id`, `count`);

3. select t_carinfo_coupon_activity.* from t_carinfo_coupon_activity left join t_carinfo_coupon_activity_callback as b on t_carinfo_coupon_activity.id = b.activity —— 22 次 × 282.02s = 1.72h

select t_carinfo_coupon_activity.* from `t_carinfo_coupon_activity` left join `t_carinfo_coupon_activity_callback` as `b` on `t_carinfo_coupon_activity`.`id` = `b`.`activity_item_id` left join `t_carinfo_agent_call_to_bidding` as `c` on `t_carinfo_coupon_activity`.`m_id` = `c`.`m_id` and `c`.`type` = 'callback' and `phase` = 4 and `c`.`created_at` > 't_carinfo_coupon_activity.created_at' where (`t_carinfo_coupon_activity`.`type` = 4) and `b`.`payment_time` is null and `t_carinfo_coupon_activity`.`m_id` > 0 and `c`.`id` is null;
select t_carinfo_coupon_activity.* from `t8891`.`t_carinfo_coupon_activity` left join `t8891`.`t_carinfo_coupon_activity_callback` as `b` on `t_carinfo_coupon_activity`.`id` = `b`.`activity_item_id` left join `t8891`.`t_carinfo_agent_call_to_bidding` as `c` on `t_carinfo_coupon_activity`.`m_id` = `c`.`m_id` and `c`.`type` = 'callback' and `phase` = 4 and `c`.`created_at` > 't_carinfo_coupon_activity.created_at' where (`t_carinfo_coupon_activity`.`type` = 4) and `b`.`payment_time` is null and `t_carinfo_coupon_activity`.`m_id` > 0 and `c`.`id` is null;
#表访问类型使用索引候选索引预扫行数过滤后
1t_carinfo_coupon_activityrefidx_typeidx_m_id,idx_type3,70850.0%
2b❌ 全表扫描——1,21710.0%
3c❌ 全表扫描——474,23310.0%
ALTER TABLE `t8891`.`t_carinfo_coupon_activity` ADD INDEX `idx_type_m_id` (`type`, `m_id`);
ALTER TABLE `t8891`.`t_carinfo_coupon_activity_callback` ADD INDEX `idx_activity_i_payment_ti` (`activity_item_id`, `payment_time`);
ALTER TABLE `t8891`.`t_carinfo_agent_call_to_bidding` ADD INDEX `idx_m_id_phase_type_created_at` (`m_id`, `phase`, `type`, `created_at`);

4. select * from t_carinfo_inquiry_agent where expire_status = ? and expire_time <= ?; —— 1,440 次 × 1.92s = 46.1min

select * from `t_carinfo_inquiry_agent` where `expire_status` = 0 and `expire_time` <= '2026-10-27 16:30:11';
select * from `t8891`.`t_carinfo_inquiry_agent` where `expire_status` = 0 and `expire_time` <= '2026-10-27 16:30:11';
#表访问类型使用索引候选索引预扫行数过滤后
1t_carinfo_inquiry_agent❌ 全表扫描——1,898,6563.33%
ALTER TABLE `t8891`.`t_carinfo_inquiry_agent` ADD INDEX `idx_expire_sta_expire_tim` (`expire_status`, `expire_time`);

5. select * from t_carinfo_inquiry_agent where contact_status = ? and expire_status = ?; —— 1,229 次 × 1.95s = 40.0min

select * from `t_carinfo_inquiry_agent` where `contact_status` = 0 and `expire_status` = 0;
select * from `t8891`.`t_carinfo_inquiry_agent` where `contact_status` = 0 and `expire_status` = 0;
#表访问类型使用索引候选索引预扫行数过滤后
1t_carinfo_inquiry_agent❌ 全表扫描——1,898,6561.0%
ALTER TABLE `t8891`.`t_carinfo_inquiry_agent` ADD INDEX `idx_contact_st_expire_sta` (`contact_status`, `expire_status`);

6. select max(record_time) as aggregate from t_carinfo_inquiry_call_log; —— 1,432 次 × 1.19s = 28.4min

select max(`record_time`) as aggregate from `t_carinfo_inquiry_call_log`;
select max(`record_time`) as aggregate from `t8891`.`t_carinfo_inquiry_call_log`;
#表访问类型使用索引候选索引预扫行数过滤后
1t_carinfo_inquiry_call_log❌ 全表扫描——1,658,597100.0%
ALTER TABLE `t8891`.`t_carinfo_inquiry_call_log` ADD INDEX `idx_record_tim` (`record_time`);

7. select t_vincheck_supervision.* from t_vincheck_supervision left join t_vincheck_supervision_info on t_vincheck_supervision_info.vincheck_supervision_id = t_vin —— 288 次 × 4.31s = 20.7min

select `t_vincheck_supervision`.* from `t_vincheck_supervision` left join `t_vincheck_supervision_info` on `t_vincheck_supervision_info`.`vincheck_supervision_id` = `t_vincheck_supervision`.`id` where `t_vincheck_supervision`.`is_exist` = 1 and `t_vincheck_supervision`.`type` = 1 and `t_vincheck_supervision_info`.`id` is null order by `t_vincheck_supervision`.`id` asc limit 500;
select `t_vincheck_supervision`.* from `t8891`.`t_vincheck_supervision` left join `t8891`.`t_vincheck_supervision_info` on `t_vincheck_supervision_info`.`vincheck_supervision_id` = `t_vincheck_supervision`.`id` where `t_vincheck_supervision`.`is_exist` = 1 and `t_vincheck_supervision`.`type` = 1 and `t_vincheck_supervision_info`.`id` is null order by `t_vincheck_supervision`.`id` asc limit 500;
#表访问类型使用索引候选索引预扫行数过滤后
1t_vincheck_supervisionrefis_existis_exist,idx_type495,15750.0%
2t_vincheck_supervision_infoeq_refidx_vincheck_supervision_ididx_vincheck_supervision_id110.0%
ALTER TABLE `t8891`.`t_vincheck_supervision` ADD INDEX `idx_is_exist_type` (`is_exist`, `type`);

8. select count(*) as aggregate from v_items where item_class = ? and item_display_status = ? and new_kind_id = ?; —— 697 次 × 1.59s = 18.5min

select count(*) as aggregate from `v_items` where `item_class` = 1 and `item_display_status` = 1 and `new_kind_id` = 10844;
select count(*) as aggregate from `t8891`.`v_items` where `item_class` = 1 and `item_display_status` = 1 and `new_kind_id` = 10844;
#表访问类型使用索引候选索引预扫行数过滤后
1t_sele_item_datarefidx_display_status_n_item_iditem_id,item_class,idx_display_status_n_item_id79,29450.0%
2t_sele_item_infosrefitem_idnew_kind_id,item_id15.0%
3t_sele_itemseq_refPRIMARYPRIMARY1100.0%
ALTER TABLE `t8891`.`v_items` ADD INDEX `idx_item_class_item_displ_new_kind_i` (`item_class`, `item_display_status`, `new_kind_id`);

逐条优化建议汇总

P 行 = 深析模式(指纹聚合,按全天累计耗时降序 P1 最大,是优化主战场);T 行 = 单条耗时 Top3 的一次性慢 SQL(多为 bi/导出查询,治理手段通常是限流/降频/移到从库,而非建索引)。
编号对象建议
P1t8891.t_member_devices(3,475×5.6s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_member_devices ADD INDEX idx_m_id_hash (m_id, hash);
P2t8891.t_carinfo_favorite(2,415×5.2s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_carinfo_favorite ADD INDEX idx_type_sale_stop_m_id_count (type, sale_stop, m_id, count);; 缩小聚合/去重范围(补时间等过滤条件), 或预聚合到中间表/定时任务; 把 ORDER BY 列纳入复合索引, 或减小排序前扫描范围
P3t8891.t_carinfo_coupon_activity(22×282.0s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_carinfo_coupon_activity ADD INDEX idx_type_m_id (type, m_id); ALTER TABLE t8891.t_carinfo_coupon_activity_callback ADD INDEX idx_activity_i_payment_ti (activity_item_id, payment_time); ALTER TABLE t8891.t_carinfo_agent_call_to_bidding ADD INDEX idx_m_id_phase_type_created_at (m_id, phase, type, created_at);
P4t8891.t_carinfo_inquiry_agent(1,440×1.9s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_carinfo_inquiry_agent ADD INDEX idx_expire_sta_expire_tim (expire_status, expire_time);
P5t8891.t_carinfo_inquiry_agent(1,229×2.0s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_carinfo_inquiry_agent ADD INDEX idx_contact_st_expire_sta (contact_status, expire_status);
P6t8891.t_carinfo_inquiry_call_log(1,432×1.2s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_carinfo_inquiry_call_log ADD INDEX idx_record_tim (record_time);
P7t8891.t_vincheck_supervision(288×4.3s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.t_vincheck_supervision ADD INDEX idx_is_exist_type (is_exist, type);
P8t8891.v_items(697×1.6s)补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; DDL: ALTER TABLE t8891.v_items ADD INDEX idx_item_class_item_displ_new_kind_i (item_class, item_display_status, new_kind_id);
T1Top1(同 P3 对象) 单条最慢 5.0min,user=t8891 t8891.t_carinfo_coupon_activity补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; bi/导出类: 限流降频、移从库/离线跑, 避免高峰占用主库
T2Top2(同 P3 对象) 单条最慢 4.9min,user=t8891 t8891.t_carinfo_coupon_activity补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; bi/导出类: 限流降频、移从库/离线跑, 避免高峰占用主库
T3Top3(同 P3 对象) 单条最慢 4.8min,user=t8891 t8891.t_carinfo_coupon_activity补索引(按 WHERE 等值列在前、范围列收尾建复合索引); 用 EXPLAIN 验证 key 命中; bi/导出类: 限流降频、移从库/离线跑, 避免高峰占用主库

*采集脚本 .agents/scripts/mysql_slow_prod_report.py,中间数据 outputs/slow_report_prod8891_20261027.json;全程只读。*