MySQL 的wait_timeout参数

2017/08/21 16:37
阅读数 121

下文描述了mysql的wait_timeout参数配置注意事项。简单的来讲要注意连接的程序用的是什么,是有状态的(如java,.net等)还是没状态的(如php,python等),有状态的wait_timeout连接时间要长(值范围60-259200),无状态的连接时间要短。mysql默认值是8小时。interactive_timeout(值范围10-86400)是用在shell交互时的超时时间。

其实很多性能优化的指导,都是如果无状态化。如缓存,静态化,轮循,分布式等,无状态很受欢迎。

 

Locate the timeout configuration and adjust it to fit your server.

wait_timeout = 28800
interactive_timeout = 28800
  • The interactive timeout does not affect any web application connections. A high interactive_timeout but a low wait_timeout is normal and is the best practice.

  • Choose a reasonable wait_timeout value. Stateless PHP environments do well with a 60 second timeout or less. Stateful applications that use a connection pool (Java, .NET, etc.) will need to adjust wait_timeout to match their connection pool settings. The default 8 hours (wait_timeout = 28800) works well with properly configured connection pools.

  • Configure the wait_timeout to be slightly longer than the application connection pool’s expected connection lifetime. This is a good safety check.

  • Consider changing the wait_timeout value online. This does not require a MySQL restart, and the wait_timeout can be adjusted in the running server without incurring downtime. You would issue set global wait_timeout=60 and any new sessions created would inherit this value. Be sure to preserve the setting in my.cnf. Any existing connections will need to hit the old value of wait_timeout if the application abandoned the connection. If you do have reporting jobs that will do longer local processing while in a transaction, you might consider having such jobs issue set session wait_timeout=3600 upon connecting.

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部