MySQL连接数据过多排查方法
MySQL连接数过多的时候,排查问题的方法,可以查看每一个连接都执行了什么语句。
执行一下这个SQL语句进行查看。
select id, db, user, host, command, time, state, info from information_schema.processlist where command != 'Sleep' order by time desc
info列就是正在执行的SQL语句。
关于MySQL连接过多的排查方法
在一些项目上会出现mysql连接过多导致后台无法正常访问,出现这个问题的原因可能有以下几点。
1,数据库连接池数量开的太多。
2,MySQL的超时关闭空闲连接时间太长。
3,MySQL的连接数太少。
现在的解决办法就是从这三方面去优化。
1,尽量减少数据库连接池的开销。数据库连接池如果处理的过来,越少越好,控制在50以内吧。
2,修改MySQL的配置文件my.ini里面的wait_timeout和interactive_timeout参数,默认值28800是8个小时的时间,这两个参数必须要同时修改成600,就是10分钟的空闲连接,mysql就会自动关闭。但是,这样做就必须要注意的事情就是在我们的程序里面必须要在10分钟内最少要使用一次MySQL,否则就有可能导致mysql连接断开,需要重连。
3,去修改mysql配置文件my.ini里面的max_connections参数,这个是6000,基本上不用修改,如果第1步和第2步都修改了,仍然有问题,那可以把这个参数调大一点。实际上并不是这个值越大越好,因为这个受限制于硬件,如果硬件配置低,修改的再大也没有用。所以需要具体情况具体分析。
评论已关闭