mysql中睡眠连接会对mysql服务器造成影响
严重消耗mysql服务器资源(主要是cpu, 内存),并可能导致mysql崩溃。
造成睡眠连接过多的原因?
1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接)
2. 程序中,没有及时关闭mysql连接
3. 数据库查询不够优化,过度耗时。
那么,如果要从根本上解决sleep连接过多,就得从以上三点反复检查,但是见效并不快。
在mysql的配置文件中设置自动关闭链接时间过长的进程:
修改mysql的配置文件my.cnf , window系统中是my.ini
[mysqld] wait_timeout=100 interactive_timeout=100
wait_timeout=100 #即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止。
设置好后重启mysql
service mysqld restart
修改mysql占用内存的参数如下:
table_open_cache=2000 改为
table_open_cache=256
table_definition_cache=1400 改为
table_definition_cache=400
如果本文对你有帮助,欢迎打赏本站