霜天部落 | 专注PHP研发,研究LAMP高性能架构部署与优化

MySQL配置wait_timeout

一般来讲,程序配置优化所产生的生产力远比提高硬件配置要好,可能一行蹩脚的SQL要吃掉你服务器整个内存,导航你的网站或服务器宕机。优化程序和服务器配置是提高效率的第一步也是最好的办法,如果实在不行再从去升级你的硬件配置。

在日常的MySQL服务器中,wait_timeout这个参数非常有用。(在部分MySQL的默认配置中可能没有wait_timeout这个参数项,你在[mysqld]节中加上即可)

参数意义:MySQL客户端的数据库连接闲置最大时间值。

参数默认值:默认值为8小时 。

这个参数的大概意思是某一个MySQL客户端连接闲置的最大时间值,即某一个MySQL客户端连接过程中,闲置的最大时间到达后服务器将其关闭。

MySQL服务器所支撑的最大连接数是有限的,因为每一个连接、第一个表打开的操作都要消耗服务器内存,理想状态是当一个MySQL客户端连接完成工作就自动断开释放内存,如果你的你的网站有大量的MySQL链接请求,这些连接完成SQL执行任务后空闲着啥事也不干,白白占用内存资源,如果 这些连接堆积起来,将导致MySQL超过最大连接数,从而无法新建MySQL连接,有可能导致“Too many connections”的错误。

可以在设置之前用show processlist查看一下MySQL状态,如果你发现你的MYSQL中有大量的Sleep进程,哪么你真的需要设置你的wait_timeout了。依你的程序而定设置多大的值 ,我的设置wait_timeout=10,MySQL中的所有Sleep线程最多只能“睡”10秒,之后就被强行关闭了。

 



There are 2 Comments to "MySQL配置wait_timeout"