mysql慢查询sql故障排查

最近项目后台管理系统出现问题,页面刷新没有数据,记录一下排查和解决的过程。

一、现象

1、后台页面没有数据,刷新也不起作用。

2、查看浏览器页面接口返回消息,后台接口报错500。初步定为应该后台接口出了问题。

3、检查后台服务,hystrix报time out,应该相关服务超时。

二、问题分析

1、查看被调用的服务,没有报错,但是log没有继续打印,最后执行完几条sql后就卡住了,初步估计是运行太慢导致的问题。

2、服务没有问题,就得看看数据库是否出问题了,执行 #show processlist 查看mysql正在运行的sql线程。发现有部分sql语句卡住,状态一直是Sending data,没有变过。这是导致mysql运行慢的问题了

3、查看mysql慢查询日志,发现有部分sql执行效率太低,query time超过了10秒(相当慢的查询,数据库工程师背锅)。和上面卡住的sql语句一比对,发现正是这部分sql,那问题是找到了。

 

三、解决

1、explain分析sql,查看是否使用索引;

2、优化sql,查询时间要小于2s;

3、加大mysql缓存

猜你喜欢

转载自www.cnblogs.com/alan6/p/13402361.html