背景
早上收到客户反馈车辆列表页面,加载慢
思路
查看msyql执行的慢sql有没有与车辆列表相关的
开始
查看sql执行列表
show processlist;
查看sql执行列表(显示完整的sql)
show full processlist;
发现有许多与truck相关的sql执行,sql执行不慢都是毫秒级,但是一直都有。
查看truck表当前被查询使用的次数
show OPEN TABLES where In_use > 0;
果然发现 truck那栏的in_use =26,说明这张表在被频繁使用。找到问题,想办法降低使用频率或者提高效率。
查看与truck表相关的操作,发现一个频繁使用的接口里面内部逻辑,有一段代码再循环全表查询truck这张表,后面改成批量一次查询后cpu就降下来了。
参考链接
SHOW OPEN TABLES语法_liu_sisi的博客-CSDN博客
MySQL死锁问题如何分析&锁表后查看死锁和去除死锁快速解决方法_赵英超的博客-CSDN博客