(1)interactive_timeout:
參數含義:服務器關閉交互式連接前等待活動的秒數。交互式客戶端定義為在mysql_real_connect()中使用CLIENT_INTERACTIVE選項的客戶端。
參數默認值:28800秒(8小時)
(2)wait_timeout:
參數含義:服務器關閉非交互連接之前等待活動的秒數。
在線程啟動時,根據全局wait_timeout值或全局interactive_timeout值初始化會話wait_timeout值,取決於客戶端類型(由mysql_real_connect()的連接選項CLIENT_INTERACTIVE定義)。
參數默認值:28800秒(8小時)
問題1:這里為什么要同時設置interactive_timeout,wait_timeout的設置才會生效?
答: 不設置interactive_timeout,wait_timeout也會生效。
問題2:interactive的值如果設置的和wait_timeout不同,為什么Interactive_timeout會覆蓋wait_timeout?
答:在交互模式下(CLIENT_INTERACTIVE),interactive_timeout才生效,非交互模式下,不生效。
問題3:在進行MySQL優化時,因為interactive_timeout決定的是交互連接的時間長短,而wait_timeout決定的是非交互連接的時間長短。如果在進行連接配置時mysql_real_connect()最后一個參數client_flag不設置為CLIENT_INTERACTIVE,是不是interactive_timeout的值不會覆蓋wait_timeout?
答:可以做實驗試試。
問題4:為了減少長連接的數量,在設置優化時是不是可以將interactive_timeout的值設置的大些,而wait_timeout的值設置的小些?但是問題2的描述好像又不允許這樣。。。
答:如2所述,在交互模式下,interactive_timeout取代wait_timeout。這樣,如果有的客戶端是交互模式方式連接mysql server。那么客戶端的timeout受制於interactive_timeout。如果有的客戶端是非交互模式,長連接mysql server。那么客戶端的timeout受制於wait_timeout。(是否是交互模式的連接,由客戶端決定)
轉自: https://blog.csdn.net/qq0824/article/details/96831106