Mysql踩坑——Group by
- 问题背景
最近上线的一个统计月活用户的需求,看起来一个定时任务+几句sql统计就一步到位结束了。近几日发现生产数据没我的月活数据,于是就排查起来。
问题知道,那下一步肯定就是去排查了。
- 排查思路
- 先确定是不是任务挂了导致数据没跑出来
看了下生产的表,乍一看数据都挺正常的。然后去筛一下自己的记录,发现近几日都没有我的月活。于是上CAT
服务监控系统去看下有没有相关的日志,发现有一条SQL报了超时错误。
- 知道错误在哪,然后正常的就是复现问题了
因为这种超时错误是在深度翻页时发生,找到合适的参数执行SQL复现问题。测试的时候没有这么多的数据,所以这个问题没有暴露出来。在日志中找到发生错误时的参数,复现了问题。
- 问题也复现了,现在只剩下fix了
- 优化(修复)
先来看下SQL
SELECT
user_id ,count(*)