標籤:style http io ar color 使用 sp strong 檔案
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小時)
MySQL伺服器所支援的最大串連數是有上限的,因為每個串連的建立都會消耗記憶體,因此我們希望用戶端在串連到MySQL Server處理完相應的操作後,應該中斷連線並釋放佔用的記憶體。如果你的MySQL Server有大量的閑置串連,他們不僅會白白消耗記憶體,而且如果串連一直在累加而不斷開,最終肯定會達到MySQL Server的串連上限數,這會報‘too many connections‘的錯誤。對於wait_timeout的值設定,應該根據系統的運行情況來判斷。在系統運行一段時間後,可以通過show processlist命令查看當前系統的串連狀態,如果發現有大量的sleep狀態的串連進程,則說明該參數設定的過大,可以進行適當的調整小些。
問題:
如果在設定檔my.cnf中只設定參數wait_timeout=100,則重啟伺服器後進入,執行:
Mysql> show variables like “%timeout%”;
會發現參數設定並未生效,仍然為28800(即預設的8個小時)。
查詢資料後,要同時設定interactive_timeout和wait_timeout才會生效。
【mysqld】
wait_timeout=100
interactive_timeout=100
重啟MySQL Server進入後,查看設定已經生效。
問題1:這裡為什麼要同時設定interactive_timeout,wait_timeout的設定才會生效?
問題2:interactive的值如果設定的和wait_timeout不同,為什麼Interactive_timeout會覆蓋wait_timeout?
問題3:在進行MySQL最佳化時,因為interactive_timeout決定的是互動串連的時間長短,而wait_timeout決定的是非互動串連的時間長短。如果在進行串連配置時mysql_real_connect()最後一個參數client_flag不設定為CLIENT_INTERACTIVE,是不是interactive_timeout的值不會覆蓋wait_timeout?
問題4:為了減少長串連的數量,在設置最佳化時是不是可以將interactive_timeout的值設定的大些,而wait_timeout的值設定的小些?但是問題2的描述好像又不允許這樣。。。
我的設定:進入mysql命令列
set wait_timeout=180;
set interactive_timeout=180;
MySQL中的配置參數interactive_timeout和wait_timeout(可能導致過多sleep進程的兩個參數)