线上一个接口突然很慢
定位问题思路:
启动本地最新代码项目连接正式库
发现报该错误
SQL异常
第一反应是可能发生死锁了
利用MySQL show processlist 命令查询SQL语句情况
然后发现正在执行的 SQL 状态是 Waiting for table metadata lock,这就说明他正在等待 MDL 锁。
此时脑海里有三个解决方案。
1、kill 掉死锁的SQL线程
2、增加MySQL等待时间(不立马奏效)
3、重启MySQL。
当然我是没有权限重启正式库的,只能反馈给上级领导。上级领导选择了第3个。一劳永逸。