亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL數(shù)據(jù)庫(kù)超時(shí)設(shè)置配置的方法實(shí)例

 更新時(shí)間:2021年10月13日 10:18:03   作者:張松然  
這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)超時(shí)設(shè)置配置的相關(guān)資料,通過(guò)文中的設(shè)置方法可以很好的解決大家遇到的mysql數(shù)據(jù)庫(kù)超時(shí)問(wèn)題,需要的朋友可以參考下

前言

最近備戰(zhàn)京東雙11,在配置MySQL的超時(shí)配置發(fā)現(xiàn)有很多地方可以設(shè)置。這么多超時(shí)的配置有什么影響,以及配置會(huì)有什么影響呢?今天的文章就讓我來(lái)大家來(lái)分析一下。

1. JDBC超時(shí)設(shè)置

connectTimeout:表示等待和MySQL數(shù)據(jù)庫(kù)建立socket鏈接的超時(shí)時(shí)間,默認(rèn)值0,表示不設(shè)置超時(shí),單位毫秒,建議30000

socketTimeout:表示客戶端和MySQL數(shù)據(jù)庫(kù)建立socket后,讀寫(xiě)socket時(shí)的等待的超時(shí)時(shí)間,linux系統(tǒng)默認(rèn)的socketTimeout為30分鐘,可以不設(shè)置

2. 連接池超時(shí)設(shè)置

maxWait:表示從數(shù)據(jù)庫(kù)連接池取鏈接,連接池沒(méi)有可用連接時(shí)的等待時(shí)間,默認(rèn)值0,表示無(wú)限等待,單位毫秒,建議60000

3. MyBatis查詢超時(shí)

defaultStatementTimeout:表示在MyBatis配置文件中默認(rèn)查詢超時(shí)間,單位秒,不設(shè)置則無(wú)線等待

如果一些sql需要執(zhí)行超過(guò)defaultStatementTimeout可以通過(guò)Mapper文件單獨(dú)的sql的timeout進(jìn)行配置

4. 事務(wù)超時(shí)

事務(wù)超時(shí)用于控制事務(wù)執(zhí)行的超時(shí),執(zhí)行時(shí)間是事務(wù)內(nèi)所有代碼執(zhí)行總和,單位為秒。

總結(jié)

高級(jí)別的timeout依賴于低級(jí)別的timeout,只有當(dāng)?shù)图?jí)別的timeout無(wú)誤時(shí),高級(jí)別的timeout才能確保正常。例如,當(dāng)socket timeout出現(xiàn)問(wèn)題時(shí),高級(jí)別的statement timeout和transaction timeout都將失效。

1. Transaction Timeout

Spring提供的transaction timeout配置非常簡(jiǎn)單,它會(huì)記錄每個(gè)事務(wù)的開(kāi)始時(shí)間和消耗時(shí)間,當(dāng)特定的事件發(fā)生時(shí)就會(huì)對(duì)消耗時(shí)間做校驗(yàn),當(dāng)超出timeout值時(shí)將拋出異常。

假設(shè)某個(gè)事務(wù)中包含5個(gè)statement,每個(gè)statement的執(zhí)行時(shí)間是200ms,其他業(yè)務(wù)邏輯的執(zhí)行時(shí)間是100ms,那么transaction timeout至少應(yīng)該設(shè)置為1,100ms(200 * 5 + 100)。

2. Statement Timeout

statement timeout用來(lái)限制statement的執(zhí)行時(shí)長(zhǎng),timeout的值通過(guò)調(diào)用JDBC的java.sql.Statement.setQueryTimeout(int timeout) API進(jìn)行設(shè)置。不過(guò)現(xiàn)在開(kāi)發(fā)者已經(jīng)很少直接在代碼中設(shè)置,而多是通過(guò)框架來(lái)進(jìn)行設(shè)置。

在iBatis中,statement timeout的默認(rèn)值可以通過(guò)sql-map-config.xml中的defaultStatementTimeout 屬性進(jìn)行設(shè)置。同時(shí),你還可以設(shè)置sqlmap中select,insert,update標(biāo)簽的timeout屬性,從而對(duì)不同sql語(yǔ)句的超時(shí)時(shí)間進(jìn)行獨(dú)立的配置。

3. Socket timeout

JDBC的socket timeout在數(shù)據(jù)庫(kù)被突然停掉或是發(fā)生網(wǎng)絡(luò)錯(cuò)誤(由于設(shè)備故障等原因)時(shí)十分重要。由于TCP/IP的結(jié)構(gòu)原因,socket沒(méi)有辦法探測(cè)到網(wǎng)絡(luò)錯(cuò)誤,因此應(yīng)用也無(wú)法主動(dòng)發(fā)現(xiàn)數(shù)據(jù)庫(kù)連接斷開(kāi)。如果沒(méi)有設(shè)置socket timeout的話,應(yīng)用在數(shù)據(jù)庫(kù)返回結(jié)果前會(huì)無(wú)期限地等下去,這種連接被稱為dead connection。

為了避免dead connections,socket必須要有超時(shí)配置。socket timeout可以通過(guò)JDBC設(shè)置,socket timeout能夠避免應(yīng)用在發(fā)生網(wǎng)絡(luò)錯(cuò)誤時(shí)產(chǎn)生無(wú)休止等待的情況,縮短服務(wù)失效的時(shí)間。

不推薦使用socket timeout來(lái)限制statement的執(zhí)行時(shí)長(zhǎng),因此socket timeout的值必須要高于statement timeout,否則,socket timeout將會(huì)先生效,這樣statement timeout就變得毫無(wú)意義,也無(wú)法生效。

到此這篇關(guān)于MySQL數(shù)據(jù)庫(kù)超時(shí)設(shè)置配置的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)庫(kù)超時(shí)設(shè)置配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題

    MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò)問(wèn)題

    本文主要介紹了MySQL解決Navicat設(shè)置默認(rèn)字符串時(shí)的報(bào)錯(cuò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Windows平臺(tái)下MySQL安裝與配置方法與注意事項(xiàng)

    Windows平臺(tái)下MySQL安裝與配置方法與注意事項(xiàng)

    這篇文章主要介紹了Windows平臺(tái)下MySQL安裝與配置方法與注意事項(xiàng),需要的朋友可以參考下
    2017-04-04
  • 詳解Mysql之mysqlbackup備份與恢復(fù)實(shí)踐

    詳解Mysql之mysqlbackup備份與恢復(fù)實(shí)踐

    這篇文章主要介紹了詳解Mysql之mysqlbackup備份與恢復(fù)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • mysql 找回誤刪表的數(shù)據(jù)方法(必看)

    mysql 找回誤刪表的數(shù)據(jù)方法(必看)

    下面小編就為大家?guī)?lái)一篇mysql 找回誤刪表的數(shù)據(jù)方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • mysql關(guān)于or的索引的問(wèn)題及解決

    mysql關(guān)于or的索引的問(wèn)題及解決

    這篇文章主要介紹了mysql關(guān)于or的索引的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL數(shù)據(jù)庫(kù)的約束限制詳解

    MySQL數(shù)據(jù)庫(kù)的約束限制詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)的約束限制詳解,數(shù)據(jù)庫(kù)的約束是對(duì)表中數(shù)據(jù)進(jìn)行的一種限制,為了保證數(shù)據(jù)的正確性、有效性、完整性,下文簡(jiǎn)單介紹需要的朋友可以參考一下
    2022-08-08
  • mysql的docker容器如何設(shè)置默認(rèn)的數(shù)據(jù)庫(kù)技巧詳解

    mysql的docker容器如何設(shè)置默認(rèn)的數(shù)據(jù)庫(kù)技巧詳解

    這篇文章主要為大家介紹了mysql的docker容器如何設(shè)置默認(rèn)的數(shù)據(jù)庫(kù)技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • MySql 字符串中提取數(shù)字的實(shí)現(xiàn)示例

    MySql 字符串中提取數(shù)字的實(shí)現(xiàn)示例

    在MySQL中,有時(shí)需要從字符串中提取數(shù)字,本文就來(lái)介紹一下MySql 字符串中提取數(shù)字的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • pymysql操作mysql數(shù)據(jù)庫(kù)的方法

    pymysql操作mysql數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了pymysql簡(jiǎn)單操作mysql數(shù)據(jù)庫(kù)的方法,主要講的是一些基礎(chǔ)的pymysql操作mysql數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 分享MySql8.0.19 安裝采坑記錄

    分享MySql8.0.19 安裝采坑記錄

    這篇文章主要介紹了MySql8.0.19 安裝采坑記錄,內(nèi)容雖然不長(zhǎng),但是都是朋友經(jīng)常遇到的問(wèn)題,小編特此分享到腳本之家平臺(tái),需要的朋友可以參考下
    2020-02-02

最新評(píng)論