MySQL数据库执行analyze采集信息

文 / @UTHEME

分析MySQL数据库执行analyze采集信息的过程中遇到的问题,以及解决方案:

故障简介:开发发现应用的某个功能查询比以前慢了很多,对应的MySQL数据库中执行计划不正确,其中一个表的统计信息不准确是导致SQL语句执行计划不对的原因。

解决方案:先执行analyze操作,重新采集信息,但是在执行过程中,analyze操作卡住,导致所有涉及查询T表的select语句都无法返回结果,最终导致应用出现各种告警信息,故障复盘时发现是因为执行analyze操作的是一个slave库,所以可以模拟查询操作。先查询慢sql语句,发现有一个会话一直卡住不释放,是导致analyze操作卡住的原因,通过kill掉会话的方式解决了问题。建议在执行analyzetable之前,需要先估算一下表的数据量,根据经验预估需要消耗的时间,避免在业务高峰期执行,同时避免长事务的执行对其产生影响。

总结:MySQL数据库执行analyze采集信息的过程中,需要注意表的数据量以及执行时间,避免在业务高峰期执行,同时需要注意长事务的执行对其产生的影响。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。