最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于數(shù)據(jù)庫(kù)連接池Druid使用說(shuō)明

 更新時(shí)間:2017年10月01日 13:52:11   作者:流子  
這篇文章主要介紹了關(guān)于數(shù)據(jù)庫(kù)連接池Druid使用說(shuō)明,涉及Druid 參數(shù)和運(yùn)行原理等等相關(guān)內(nèi)容,小編覺(jué)得挺不錯(cuò)的,在這里給大家分享一下。

根據(jù)綜合性能,可靠性,穩(wěn)定性,擴(kuò)展性,易用性等因素替換成最優(yōu)的數(shù)據(jù)庫(kù)連接池。

Druid:druid-1.0.29

數(shù)據(jù)庫(kù) Mysql.5.6.17

替換目標(biāo):替換掉C3P0,用druid來(lái)替換

替換原因:

1、性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免鎖競(jìng)爭(zhēng)。

2、druid功能最為全面,sql攔截等功能,統(tǒng)計(jì)數(shù)據(jù)較為全面,具有良好的擴(kuò)展性。

3、綜合性能,擴(kuò)展性等方面,可考慮使用druid或者h(yuǎn)ikariCP連接池,比較方便對(duì)jdbc接口進(jìn)行監(jiān)控跟蹤等。

4、可開(kāi)啟prepareStatement緩存,對(duì)性能會(huì)有大概20%的提升。

psCache是connection私有的,所以不存在線程競(jìng)爭(zhēng)的問(wèn)題,開(kāi)啟pscache不會(huì)存在競(jìng)爭(zhēng)的性能損耗。

psCache的key為prepare執(zhí)行的sql和catalog等,value對(duì)應(yīng)的為prepareStatement對(duì)象。開(kāi)啟緩存主要是減少了解析sql的開(kāi)銷(xiāo)。

5、3p0歷史悠久,代碼及其復(fù)雜,不利于維護(hù)。并且存在deadlock的潛在風(fēng)險(xiǎn)。

6、Druid可以打印SQL,慢查詢(xún)方面的日志

Druid 參數(shù)

配置參數(shù) 缺省值 游戲服設(shè)置的值 參數(shù)說(shuō)明
initialSize 0 4 初始化連接數(shù)量
minIdle 0 4 最小空閑連接數(shù)
maxActive 8 8 最大并發(fā)連接數(shù)
maxWait -1L 60000 獲取連接時(shí)最大等待時(shí)間,單位毫秒。配置了maxWait之后,
缺省啟用公平鎖,并發(fā)效率會(huì)有所下降,
如果需要可以通過(guò)配置useUnfairLock屬性為true使用非公平鎖。
timeBetweenEvictionRunsMillis 60000 60000 配置間隔多久才進(jìn)行一次檢測(cè),檢測(cè)需要關(guān)閉的空閑連接,單位是毫秒
Destroy線程會(huì)檢測(cè)連接的間隔時(shí)間
minEvictableIdleTimeMillis 1800000 1800000 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒
validationQuery null select 1 用來(lái)檢測(cè)連接是否有效的sql,要求是一個(gè)查詢(xún)語(yǔ)句
testOnBorrow FALSE FALSE 申請(qǐng)連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能。
testOnReturn FALSE FALSE 歸還連接時(shí)執(zhí)行validationQuery檢測(cè)連接是否有效,做了這個(gè)配置會(huì)降低性能
testWhileIdle TRUE TRUE 建議配置為true,不影響性能,并且保證安全性。 申請(qǐng)連接的時(shí)候檢測(cè),如果
空閑時(shí)間大于 timeBetweenEvictionRunsMillis, 執(zhí)行validationQuery檢測(cè)連接是否有效。
poolPreparedStatements FALSE TRUE false 是否緩存preparedStatement,也就是PSCache。
PSCache對(duì)支持游標(biāo)的數(shù)據(jù)庫(kù)性能提升巨大,比如說(shuō)oracle。
在mysql5.5以下的版本中沒(méi)有PSCache功能,建議關(guān)閉掉。
5.5及以上版本有PSCache,建議開(kāi)啟。
maxPoolPreparedStatementPerConnectionSize 10 100 要啟用PSCache,必須配置大于0,當(dāng)大于0時(shí),
poolPreparedStatements自動(dòng)觸發(fā)修改為true。
單個(gè)connnection獨(dú)享一個(gè)statement cache,也就是說(shuō)maxOpenPreparedStatements是針對(duì)單個(gè)connection鏈接的

運(yùn)行原理:

數(shù)據(jù)庫(kù)連接池在初始化的時(shí)候會(huì)創(chuàng)建initialSize個(gè)連接,當(dāng)有數(shù)據(jù)庫(kù)操作時(shí),會(huì)從池中取出一個(gè)連接。如果當(dāng)前池中正在使用的連接數(shù)等于maxActive,則會(huì)等待一段時(shí)間,等待其他操作釋放掉某一個(gè)連接,如果這個(gè)等待時(shí)間超過(guò)了maxWait,則會(huì)報(bào)錯(cuò);如果當(dāng)前正在使用的連接數(shù)沒(méi)有達(dá)到maxActive,則判斷當(dāng)前是否空閑連接,如果有則直接使用空閑連接,如果沒(méi)有則新建立一個(gè)連接。在連接使用完畢后,不是將其物理連接關(guān)閉,而是將其放入池中等待其他操作復(fù)用。 同時(shí)連接池內(nèi)部有機(jī)制判斷,如果當(dāng)前的總的連接數(shù)少于miniIdle,則會(huì)建立新的空閑連接,以保證連接數(shù)得到miniIdle。如果當(dāng)前連接池中某個(gè)連接在空閑了timeBetweenEvictionRunsMillis時(shí)間后仍然沒(méi)有使用,則被物理性的關(guān)閉掉。有些數(shù)據(jù)庫(kù)連接的時(shí)候有超時(shí)限制(mysql連接在8小時(shí)后斷開(kāi)),或者由于網(wǎng)絡(luò)中斷等原因,連接池的連接會(huì)出現(xiàn)失效的情況,這時(shí)候設(shè)置一個(gè)testWhileIdle參數(shù)為true,可以保證連接池內(nèi)部定時(shí)檢測(cè)連接的可用性,不可用的連接會(huì)被拋棄或者重建,最大情況的保證從連接池中得到的Connection對(duì)象是可用的。當(dāng)然,為了保證絕對(duì)的可用性,你也可以使用testOnBorrow為true(即在獲取Connection對(duì)象時(shí)檢測(cè)其可用性),不過(guò)這樣會(huì)影響性能。

如果要進(jìn)行SQL監(jiān)控,可以加入以下代碼:

Log4j2Filter log4j2 = new Log4j2Filter(); 
log4j2.setResultSetLogEnabled(false); 
log4j2.setStatementSqlPrettyFormat(false); 
log4j2.setStatementExecutableSqlLogEnable(true); 
 
log4j2.setDataSourceLogEnabled(false); 
log4j2.setConnectionLogEnabled(false); 
log4j2.setStatementLogEnabled(false); 
log4j2.setResultSetLogEnabled(false); 
ret.setProxyFilters(Arrays.asList(log4j2)); 

閑置檢測(cè),創(chuàng)建連接,廢棄連接清理由這三線程管理

Daemon Thread [Abandoned connection cleanup thread] 
Daemon Thread [Druid-ConnectionPool-Create-1184124073] 
Daemon Thread [Druid-ConnectionPool-Destroy-1184124073] 

總結(jié)

以上就是本文關(guān)于數(shù)據(jù)庫(kù)連接池Druid使用說(shuō)明的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以參閱:MySQL prepare原理詳解等及其他相關(guān)專(zhuān)題,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。

相關(guān)文章

  • MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng)

    MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng)

    這篇文章主要給大家介紹了關(guān)于MySQL修改innodb_data_file_path參數(shù)的一些注意事項(xiàng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • mysql之key和index的區(qū)別及創(chuàng)建刪除索引方式

    mysql之key和index的區(qū)別及創(chuàng)建刪除索引方式

    這篇文章主要介紹了mysql之key和index的區(qū)別及創(chuàng)建刪除索引方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Mysql 用戶(hù)權(quán)限管理實(shí)現(xiàn)

    Mysql 用戶(hù)權(quán)限管理實(shí)現(xiàn)

    MySQL 是一個(gè)多用戶(hù)數(shù)據(jù)庫(kù),具有功能強(qiáng)大的訪問(wèn)控制系統(tǒng),可以為不同用戶(hù)指定不同權(quán)限。本文就來(lái)介紹一下Mysql 用戶(hù)權(quán)限管理實(shí)現(xiàn),感興趣的可以了解一下
    2021-05-05
  • MySQL 常見(jiàn)的數(shù)據(jù)表設(shè)計(jì)誤區(qū)匯總

    MySQL 常見(jiàn)的數(shù)據(jù)表設(shè)計(jì)誤區(qū)匯總

    雖然會(huì)有一些常規(guī)意義上的數(shù)據(jù)表錯(cuò)誤設(shè)計(jì)和優(yōu)秀設(shè)計(jì)原則,但是同樣也會(huì)有 MySQL 特定的一些情況,這會(huì)導(dǎo)致我們犯一些 MySQL 特定的錯(cuò)誤。本篇討論常見(jiàn)的設(shè)計(jì)誤區(qū)。
    2021-06-06
  • MySQL如何解決DOS窗口亂碼問(wèn)題

    MySQL如何解決DOS窗口亂碼問(wèn)題

    這篇文章主要介紹了MySQL如何解決DOS窗口亂碼問(wèn)題,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-11-11
  • MySql與Navicat安裝教程分享

    MySql與Navicat安裝教程分享

    這篇文章主要介紹了MySql與Navicat安裝教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • mysql數(shù)據(jù)庫(kù)中字段的注釋和類(lèi)型長(zhǎng)度獲取方式

    mysql數(shù)據(jù)庫(kù)中字段的注釋和類(lèi)型長(zhǎng)度獲取方式

    這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)中字段的注釋和類(lèi)型長(zhǎng)度獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • mysql報(bào)錯(cuò)1033 Incorrect information in file: ‘xxx.frm’問(wèn)題的解決方法

    mysql報(bào)錯(cuò)1033 Incorrect information in file: ‘xxx.frm’問(wèn)題的解決方法

    這篇文章主要介紹了關(guān)于mysql報(bào)錯(cuò)1033 Incorrect information in file: 'xxx.frm'問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問(wèn)題解決

    MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問(wèn)題解決

    本文主要介紹了MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Mysql中的sql優(yōu)化實(shí)踐詳解

    Mysql中的sql優(yōu)化實(shí)踐詳解

    這篇文章主要介紹了Mysql中的sql優(yōu)化實(shí)踐詳解,SQL優(yōu)化是指通過(guò)改進(jìn)SQL語(yǔ)句的編寫(xiě)和查詢(xún)計(jì)劃的設(shè)計(jì)來(lái)提高數(shù)據(jù)庫(kù)查詢(xún)性能的過(guò)程,在優(yōu)化SQL時(shí),可以采取一些措施來(lái)提升查詢(xún)性能,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

文登市| 舒城县| 广安市| 东乡县| 资源县| 濮阳县| 连江县| 沙洋县| 增城市| 正蓝旗| 凤台县| 偃师市| 朔州市| 乌苏市| 哈密市| 博野县| 阿巴嘎旗| 封丘县| 神农架林区| 井冈山市| 常德市| 新巴尔虎左旗| 若羌县| 伊宁县| 大竹县| 嘉祥县| 浦江县| 宁化县| 达日县| 萨嘎县| 自治县| 桃园县| 辽源市| 共和县| 康平县| 东明县| 乌海市| 海晏县| 新化县| 绥中县| 万源市|