interactive_timeout和wait_timeout引數區別和設定策略

markzy5201190發表於2012-12-21

請問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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章