告警:一条 JOIN 把从库 CPU 拉满 七月五号,DBA 在群里 @我:「你那条报表 SQL 把从库 CPU 干到 100%,跑了 40 秒还没出」。这是一条订单表(8000 万行)和用户表(2000 万行)的关联查询,原本是凌晨跑的批,被临时拉到白天查。我拿 EXPLAIN 一看,问题很清楚。
现象:翻到第 1000 页要 8 秒 运营反馈"订单列表翻页越往后越慢"。我们复现了一下,第一页 23 ms,第 100 页 340 ms,第 1000 页 8.2 秒。 SQL 长这样(每页 20 条): SELECT * FROM t_order WHERE user_id = 100372
运营说:这个报表等到花儿都谢了 十一月底,运营同学提了个工单:"销售明细报表要等 8 秒以上,导出的时候更是直接超时。" 我看了下 slow log,那条查询平均 8.4 秒,最慢的一次 21 秒: # Time: 2020-11-24T14:22:31.882113+08:00 # User@Ho
DBA 甩给我一个 2.3G 的慢日志文件,说"你们那边先看看" 双十二前一周,DBA 在群里发了条消息:订单库 QPS 涨了 3 倍,慢查询日志一天产生 2.3G,让各个业务方自查。我负责的订单模块首当其冲。 拿到日志文件的时候我是懵的,2.3G 文本,几百万行,根本没法用编辑器打开。这篇记录我当