通过查看sql进程:
mysql> show processlist
发现多条语句状态为Writing to net
通过分析基本都是select 语句,都是查询数据太数据库返回网络回写慢,
查看mysql> show global variables like "max_allowed_packet" 只有32M,而我最大的表都100W级了;通过分析基本都是select 语句,都是查询结果集太大返回网络回写慢,
1.是通过explain执行计划优化sql --》是否有索引,是否走索引
2.是通过增加缓存
#max_allowed_packet 值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败,为了数据完整性,需要考虑到事务因素。
mysql>set global max_allowed_packet = 512*1024*1024;
3.调大net_read_timeout / net_write_timeout
mysql服务器端等待从客户端读取数据 / 向客户端写入数据的最大时限,默认30秒。