1. 程式人生 > 資訊 >抖音開通河南暴雨互助通道

抖音開通河南暴雨互助通道

1、資料庫連線池的基本介紹

資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個;釋放空閒時間超過最大空閒時間的資料庫連線來避免因為沒有釋放資料庫連線而引起的資料庫連線遺漏。這項技術能明顯提高對資料庫操作的效能。資料庫連線池其實就是一個容器(集合),存放著資料庫連線。

連線池基本的思想是在系統初始化的時候,將資料庫連線作為物件儲存在記憶體中,當用戶需要訪問資料庫時,並非建立一個新的連線,而是從連線池中取出一個已建立的空閒連線物件。使用完畢後,使用者也並非將連線關閉,而是將連線放回連線池中,以供下一個請求訪問使用。而連線的建立、斷開都由連線池自身來管理。同時,還可以通過設定連線池的引數來控制連線池中的初始連線數、連線的上下限數以及每個連線的最大使用次數、最大空閒時間等等。也可以通過其自身的管理機制來監視資料庫連線的數量、使用情況等。

1.1、為什麼要使用連線池

一個數據庫連線物件均對應一個物理資料庫連線,每次操作都開啟一個物理連線,使用完都關閉連線,這樣造成系統的效能低下。使用資料庫連線池可以節約資源,程式更加高效。

資料庫連線池的解決方案是在應用程式啟動時建立足夠的資料庫連線,並講這些連線組成一個連線池(簡單說:在一個“池”裡放了好多半成品的資料庫連線物件),由應用程式動態地對池中的連線進行申請、使用和釋放。對於多於連線池中連線數的併發請求,應該在請求佇列中排隊等待。並且應用程式可以根據池中連線的使用率,動態增加或減少池中的連線數。連線池技術儘可能多地重用了消耗記憶體地資源,大大節省了記憶體,提高了伺服器地服務效率,能夠支援更多的客戶服務。通過使用連線池,將大大提高程式執行效率,同時,我們可以通過其自身的管理機制來監視資料庫連線的數量、使用情況等。

1.2、Java中常見的資料連線池

在Java中開源的資料庫連線池有以下幾種 :

  1. C3P0:是一個開放原始碼的JDBC連線池,它在lib目錄中與Hibernate[2]一起釋出,包括了實現jdbc3和jdbc2擴充套件規範說明的Connection 和Statement 池的DataSources 物件。
  2. Druid:Druid不僅是一個數據庫連線池,還包含一個ProxyDriver、一系列內建的JDBC元件庫、一個SQL Parser。支援所有JDBC相容的資料庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。
  3. Proxool:是一個Java SQL Driver驅動程式,提供了對選擇的其它型別的驅動程式的連線池封裝。可以非常簡單的移植到現存的程式碼中,完全可配置,快速、成熟、健壯。可以透明地為現存的JDBC驅動程式增加連線池功能。
  4. DBCP:DBCP是一個依賴Jakarta commons-pool物件池機制的資料庫連線池,DBCP可以直接的在應用程式中使用,Tomcat的資料來源使用的就是DBCP。