CommunicationsException: Communications link failure

目录

原因分析

SQL自身问题场景

系统资源不足场景


异常信息:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 360,005 milliseconds ago. The last packet sent successfully to the server was 360,001 milliseconds ago.

原因分析

可见,一条SQL执行时间超过了6分钟,造成超时的原因有两种

  1. SQL自身问题,太多复杂、数据量过大等等
  2. 系统资源不足,导致查询等待

需要去定位异常SQL:查看异常栈信息,分析异常SQL:explain,去定位具体原因

SQL自身问题场景

曾解决过这种情况,发现是表的数据量过大、SQL未命中索引且查询筛选数据过多,导致SQL超时

该情况问题解决:优化SQL,分批次查询

系统资源不足场景

也遇到过该情况,SQL分析发现,是非常简单的查询,执行仅需要毫秒级别,可以判断去与SQL本身无关。就去查看MySQL监控,发现报错时间段慢查询速率达到了峰值,mysql流量突增

CommunicationsException: Communications link failure_第1张图片

 解决:去查看该时间段的慢查询列表,解决慢查询;未解决之前,可以避开该时间段去执行

你可能感兴趣的:(问题解决总结,SQL耗时6分钟,MySQL监控)