MySQL與相關(guān)的timeout詳細(xì)解析
發(fā)表時(shí)間:2023-07-23 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]查詢mysql庫(kù)時(shí), 在數(shù)據(jù)量比較大時(shí),會(huì)話總斷。剛開(kāi)始以為是mysql的和連接有關(guān)timeout的問(wèn)題,結(jié)果是網(wǎng)絡(luò)的不穩(wěn)定的原因。 本文主要介紹了MySQL和連接相關(guān)的timeout 的詳細(xì)整理的...
查詢mysql庫(kù)時(shí), 在數(shù)據(jù)量比較大時(shí),會(huì)話總斷。剛開(kāi)始以為是mysql的和連接有關(guān)timeout的問(wèn)題,結(jié)果是網(wǎng)絡(luò)的不穩(wěn)定的原因。 本文主要介紹了MySQL和連接相關(guān)的timeout 的詳細(xì)整理的相關(guān)資料,本文主要總結(jié)下和連接有關(guān)的timeout,需要的朋友可以參考下,希望能幫助到大家。
下面總結(jié)下和連接有關(guān)的timeout
slave-net-timeout
The number of seconds to wait for more data from the master before the slave considers the connection broken, aborts the read, and tries to reconnect. The first retry occurs immediately after the timeout. The interval between retries is controlled by the MASTER_CONNECT_RETRY option for the CHANGE MASTER TO statement, and the number of reconnection attempts is limited by the --master-retry-count option. The default is 3600 seconds (one hour).
當(dāng)slave認(rèn)為連接master的連接有問(wèn)題時(shí),就等待N秒,然后斷開(kāi)連接,重新連接master
net_read_timeout :
The number of seconds to wait for more data from a connection before aborting the read. When the server is reading from the client, net_read_timeout is the timeout value controlling when to abort
在終止讀之前,從一個(gè)連接獲得數(shù)據(jù)而等待的時(shí)間秒數(shù);當(dāng)服務(wù)正在從客戶端讀取數(shù)據(jù)時(shí),net_read_timeout控制何時(shí)超時(shí)。
net_write_timeout:
The number of seconds to wait for a block to be written to a connection before aborting the write.When the server is writing to the client, net_write_timeout is the timeout value controlling when to abort。
在終止寫之前,等待多少秒把block寫到連接;當(dāng)服務(wù)正在寫數(shù)據(jù)到客戶端時(shí),net_write_timeout控制何時(shí)超時(shí)
wait_timeout
The number of seconds the server waits for activity on a noninteractive connection before closing it.
與服務(wù)器端無(wú)交互狀態(tài)的連接,直到被服務(wù)器端強(qiáng)制關(guān)閉而等待的時(shí)間
interactive_timeout :
The number of seconds the server waits for activity on an interactive connection before closing it.
與服務(wù)器端無(wú)交互狀態(tài)的連接,直到被服務(wù)器端強(qiáng)制關(guān)閉而等待的時(shí)間
connect_timeout
The number of seconds that the mysqld server waits for a connect packet before responding with Bad handshake. The default value is 10 seconds.
等待一個(gè)連接響應(yīng)的時(shí)間
connect_timeout:在獲取連接階段(authenticate)起作用
interactive_timeout和wait_timeout:在連接空閑階段(sleep)起作用
net_read_timeout和net_write_timeout:則是在連接繁忙階段(query)起作用。
獲取MySQL連接是多次握手的結(jié)果,除了用戶名和密碼的匹配校驗(yàn)外,還有IP->HOST->DNS->IP驗(yàn)證,任何一步都可能因?yàn)榫W(wǎng)絡(luò)問(wèn)題導(dǎo)致線程阻塞。為了防止線程浪費(fèi)在不必要的校驗(yàn)等待上,超過(guò)connect_timeout的連接請(qǐng)求將會(huì)被拒絕。
即使沒(méi)有網(wǎng)絡(luò)問(wèn)題,也不能允許客戶端一直占用連接。對(duì)于保持sleep狀態(tài)超過(guò)了wait_timeout(或interactive_timeout,取決于client_interactive標(biāo)志)的客戶端,MySQL會(huì)主動(dòng)斷開(kāi)連接。
即使連接沒(méi)有處于sleep狀態(tài),即客戶端忙于計(jì)算或者存儲(chǔ)數(shù)據(jù),MySQL也選擇了有條件的等待。在數(shù)據(jù)包的分發(fā)過(guò)程中,客戶端可能來(lái)不及響應(yīng)(發(fā)送、接收、或者處理數(shù)據(jù)包太慢)。為了保證連接不被浪費(fèi)在無(wú)盡的等待中,MySQL也會(huì)選擇有條件(net_read_timeout和net_write_timeout)地主動(dòng)斷開(kāi)連接。
相關(guān)推薦:
JavaScript中setTimeout之單線程
實(shí)例講解setTimeout看出js函數(shù)執(zhí)行過(guò)程
js中的setTimeout()函數(shù)
以上就是MySQL和相關(guān)的timeout詳細(xì)解析的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。