MYSQL的wait_timeout與連接池相關

mysql有一個很重要的配置參數   wait_timeout    它代表着連接長時間空閒的的情況下如何管理


當你的程序出現數據庫連接問題的時候,第一時間要檢查wait_timeout。它的默認值是28800,即等待8小時後關閉。原本此值是一個非常重要數據,必須謹慎配置。但是網上經常有人建議配置很高來解決問題,其實這是一個坑,過高的配置在遇到程序退出時(或者業務頻繁啓動關閉),連接無法主動釋放,然後數據庫就一直等待直到wait_timeout,如果多次出現這種情況,那將會耗盡數據庫連接資源。

正確的配置方式是根據自己業務的情況合理配,在業務很穩定的情況下可以提高配置值。在業務經常需要啓動關閉的情況下適當調低。調整後,在連接池配置中也應該修改長時間連接連接有效性檢查的相關配置,如下(僅作建議,請自行測試)


c3p0配置

idleConnectionTestPeriod  爲 wai_timeout的50%


dbcp配置  (tomcat連接池)

timeBetweenEvictionRunsMillis 爲 wai_timeout的50%


proxool 配置

maximum-connection-lifetime 小於 wai_timeout

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章