日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747



我們在使用MySQL的時候,由于各種原因會出現超時的情況,我認為常見的有連接超時、等待超時、鎖等待超時等等。可以使用show variables 來看看默認的各種類型超時時間。mysql中超時時間單位為秒。

show variables like '%timeout%'

默認超時時間

連接超時

  • connect_timeout:這個我認為可以講是最常見的超時情況了,它是設置連接的超時時間,默認10秒。它主要指的是mysql客戶端與服務器之間的tcp連接結果,并且是多次連接的結果,每次連接除了基本的用戶名和密碼之外,還需要進行主機權限驗證、域名解析。如果此過程中有任何網絡故障,通過設置連接超時,可以防止他們之間反復進行連接重試,網絡故障不是一時半會能解決,超時設置可以使得程序正常中斷,便于我們后續操作。
  • wait_timeout:默認值為28800秒。這個超時主要防止一些非網絡問題導致客戶端長期占用連接情況,例如某些原因導致鎖表,而我們應用卻一直要請求更新表,這樣如果超過了等待時間,mysql會主動斷開連接。
  • interactive_timeout:默認值為28800秒。主要防止某些mysql服務器對象保持了睡眠狀態超過了交互式等待時間,mysql會主動斷開連接。交互式連接主要指的是客戶端在命令行窗口,什么都不操作,而服務器在等待輸入命令時候也要保持的連接。
  • net_write_timeout:默認值60秒。主要是客戶端進行一個大數據查詢,mysql服務器返回結果集數據量很大,網絡傳輸數據會耗時,如果耗時超過60秒,mysql主動斷開,避免連接浪費。
  • net_read_timeout:默認值60秒,與上述返回相反,客戶端讀取了這個大的數據源,如果超時,則mysql主動斷開。

鎖等待超時

  • Innodb_lock_wait_timeout:默認值50秒,行鎖等待超時時間,當出現行級鎖鎖等待現象時候,鎖等待時間超過50秒,會導致行級鎖等待的sql語句回滾,如果希望整個事務回滾,需要開啟innodb_rollback_on_timeout參數。
  • innodb_rollback_on_timeout:默認值為OFF,設置為on,則因行級鎖超時則會直接回滾整個事務操作。

由此可見,innodb存儲引擎一旦出現鎖超時異常,默認不會回滾事務,這對應用來說,非常不合理,所以鎖等待超時異常發生后,你的應用程序應該自定義處理,要嘛提交事務,要嘛回滾事務。

復制連接超時

slave_net_timeout:mysql進行主從復制時候,當從服務器從主服務器讀取二進制日志失敗后,它會繼續等待slave_net_timeout設置的時間后,重連服務器并獲取數據,默認值60秒。

MyISAM表延遲插入超時

delayed_insert_tiemout:為MyISAM存儲引擎設置的,主要為insert語句超時時間,在鎖表情況下,insert語句會一直處于等待中,當超過默認值300秒,則中斷連接。

總結

本節重點講解了各種超時情況,只有了解它們,我們才有可能針對性的優化,并且在超時異常出現之后,能快速定位及處理。當然應用環境不同,超時異常產生原因復雜,這都需要我們在生產中積累經驗。

分享到:
標簽:超時 異常 mysql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定