• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦>知識大全>知識百科>百科知識>

    數據庫連接池的影響因素

    時間: 謝君787 分享

      數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而不是再重新建立一個,那么你對數據庫連接池了解多少呢?以下是由學習啦小編整理關于什么是數據庫連接池的內容,希望大家喜歡!

      數據庫連接池的背景

      數據庫連接是一種關鍵的、有限的、昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對數據庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。數據庫連接池正是針對這個問題提出來的。

      數據庫連接池的影響因素

      數據庫連接池在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數制約。無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能占有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。數據庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:

      1. 最小連接數

      是連接池一直保持的數據庫連接,所以如果應用程序對數據庫連接的使用量不大,將會有大量的數據庫連接資源被浪費。

      2. 最大連接數

      是連接池能申請的最大連接數,如果數據庫連接請求超過此數,后面的數據庫連接請求將被加入到等待隊列中,這會影響之后的數據庫操作。

      3. 最小連接數與最大連接數差距

      最小連接數與最大連接數相差太大,那么最先的連接請求將會獲利,之后超過最小連接數量的連接請求等價于建立一個新的數據庫連接。不過,這些大于最小連接數的數據庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時后被釋放。

      數據庫連接池的原理

      連接池基本的思想是在系統初始化的時候,將數據庫連接作為對象存儲在內存中,當用戶需要訪問數據庫時,并非建立一個新的連接,而是從連接池中取出一個已建立的空閑連接對象。使用完畢后,用戶也并非將連接關閉,而是將連接放回連接池中,以供下一個請求訪問使用。而連接的建立、斷開都由連接池自身來管理。同時,還可以通過設置連接池的參數來控制連接池中的初始連接數、連接的上下限數以及每個連接的最大使用次數、最大空閑時間等等。也可以通過其自身的管理機制來監視數據庫連接的數量、使用情況等。

      Java數據庫連接池

      在Java中開源的數據庫連接池有以下幾種 :

      1、C3P0:是一個開放源代碼的JDBC連接池,它在lib目錄中與Hibernate一起發布,包括了實現jdbc3和jdbc2擴展規范說明的Connection 和Statement 池的DataSources 對象。

      2、Proxool:是一個Java SQL Driver驅動程序,提供了對選擇的其它類型的驅動程序的連接池封裝。可以非常簡單的移植到現存的代碼中,完全可配置,快速、成熟、健壯。可以透明地為現存的JDBC驅動程序增加連接池功能。

      3、Jakarta DBCP:DBCP是一個依賴Jakartacommons-pool對象池機制的數據庫連接池。DBCP可以直接的在應用程序中使用。

      4、DDConnectionBroker:是一個簡單、輕量級的數據庫連接池。

      5、DBPool:是一個高效、易配置的數據庫連接池。它除了支持連接池應有的功能之外,還包括了一個對象池,使用戶能夠開發一個滿足自己需求的數據庫連接池。

      6、XAPool:是一個XA數據庫連接池。它實現了javax.sql.XADataSource并提供了連接池工具。

      7、Primrose:是一個Java開發的數據庫連接池。當前支持的容器包括Tomcat4&5、Resin3與JBoss3。它同樣也有一個獨立的版本,可以在應用程序中使用而不必運行在容器中。Primrose通過一個WEB接口來控制SQL處理的追蹤、配置,以及動態池管理。在重負荷的情況下可進行連接請求隊列處理。

      8、SmartPool:是一個連接池組件,它模仿應用服務器對象池的特性。SmartPool能夠解決一些臨界問題如連接泄漏(connection leaks)、連接阻塞、打開的JDBC對象(如Statements、PreparedStatements)等。SmartPool的特性包括:

      支持多個pool

      自動關閉相關聯的JDBC對象

      在所設定time-outs之后察覺連接泄漏

      追蹤連接使用情況

      強制啟用最近最少用到的連接

      把SmartPool“包裝”成現存的一個pool

      9、MiniConnectionPoolManager:是一個輕量級JDBC數據庫連接池。它只需要Java1.5(或更高)并且沒有依賴第三方包。

      10、BoneCP:是一個快速、開源的數據庫連接池。幫用戶管理數據連接,讓應用程序能更快速地訪問數據庫。比C3P0/DBCP連接池速度快25倍。

      11、Druid:Druid不僅是一個數據庫連接池,還包含一個ProxyDriver、一系列內置的JDBC組件庫、一個SQL Parser。

      支持所有JDBC兼容的數據庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。

      Druid針對Oracle和MySql做了特別優化,比如:

      Oracle的PS Cache內存占用優化

      MySql的ping檢測優化

      Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,這是一個手寫的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象語法樹很方便。

      簡單SQL語句用時10微秒以內,復雜SQL用時30微秒。

      通過Druid提供的SQL Parser可以在JDBC層攔截SQL做相應處理,比如說分庫分表、審計等。Druid防御SQL注入攻擊的WallFilter,就是通過Druid的SQL Parser分析語義實現的
    看過“數據庫連接池的影響因素”的人還看了:

    1.關于計算機數據庫技術的論文

    2.中軟java面試題及參考答案

    3.JSP學習計劃范文

    4.2016中軟國際面試題整理

    5.企業網絡安全設計論文3篇

    2029599 主站蜘蛛池模板: 国产中的精品一区的| 成人毛片视频免费网站观看| 国产精品单位女同事在线| 亚洲精品乱码久久久久久下载| free哆拍拍免费永久视频| 福利视频一区二区| 富二代国app产下载| 免费成人黄色大片| 一个色综合导航| 男人的天堂影院| 在线果冻传媒星空无限传媒| 亚洲综合伊人久久大杳蕉| 91精品免费久久久久久久久| 欧美激情一区二区三区| 国产精品久久久久免费a∨| 亚洲av永久无码精品天堂久久| 黄色91香蕉视频| 日韩一级欧美一级在线观看| 国产亚洲国产bv网站在线| 中文字幕亚洲综合久久综合| 综合亚洲欧美日韩一区二区| 宅男噜66免费看网站| 亚洲视频在线观看不卡| 337p日本欧洲亚洲大胆色噜噜| 欧洲mv日韩mv国产| 国产在线视频一区二区三区| 丰满年轻的继坶| 精品人妻少妇一区二区三区 | 久久精品国产四虎| 日韩久久精品一区二区三区| 国产gaysexchina男同menxnxx| 一级毛片美国一级j毛片不卡| 男人j桶女人j免费视频| 国产精品青草久久久久福利99| 亚洲av无码片一区二区三区| 菠萝菠萝蜜在线免费视频| 怡红院免费手机在线观看| 亚洲精品国精品久久99热| 色老太婆bbw| 无套内射无矿码免费看黄| 免费国产高清视频|