请问mysql的interactive_timeout和wait_timeout这两个参数,如何根据业务的特点来确定?
interactive_timeout是MySQL在等待一个活动连接关闭连接前等待的秒数。
wait_timeout是MySQL在等待一个非活动连接关闭连接前等待的秒数。
活动的连接和非活动的连接的定义如下:活动的连接是指使用mysql_real_connect连接时指定了CLIENT_INTERACTIVE的连接。
MySQL 5.1.41之前wait_timeout只适用于TCP/IP连接,不适用于Unix sock,name pipe,share memory的连接。
实际上,一个MySQL thread连接以后,首先会判断它是一个活动连接还是非活动连接(见上面的定义)。活动连接的话会设置为global interactive_timeout,非活动连接会设置为global wait_timeout。超时就会退出。
根据业务来的话,如果你用的是连接池,并且没有F5(F5可能会设置一个超时,把连接时间过长的session kill掉),那么你的两个timeout时间尽量设置长一些,避免应用连接池不断的重新连接数据库。如果你是短连接,那么你就需要把数据库的连接设置得短一些,否则数据库的最大连接数是有限的,你的很多连接一直不释放掉的话,数据库的资源就被拜拜浪费了。
ZZ:http://hatemysql.com/2012/07/29/interactive_timeout%E5%92%8Cwait_timeout%E5%8F%82%E6%95%B0%E5%8C%BA%E5%88%AB%E5%92%8C%E8%AE%BE%E7%BD%AE%E7%AD%96%E7%95%A5/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26855487/viewspace-751504/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26855487/viewspace-751504/