連線池作用及配置

2021-06-21 02:14:12 字數 1876 閱讀 7223

連線池的作用:連線池是將已經建立好的連線儲存在池中,當有請求來時,直接使用已經建立好的連線對資料庫進行訪問。這樣省略了建立連線和銷毀連線的過程。這樣效能上得到了提高。

基本原理:

(1)建立資料庫連線池物件(伺服器啟動)。

(2)按照事先指定的引數建立初始數量的資料庫連線(即:空閒連線數)。

(3)對於乙個資料庫訪問請求,直接從連線池中得到乙個連線。如果資料庫連線池物件中沒有空閒的連線,且連線數沒有達到最大(即:最大活躍連線數),建立乙個新的資料庫連線。

(4)訪問資料庫。

(5)關閉資料庫,釋放所有資料庫連線(此時的關閉資料庫連線,並非真正關閉,而是將其放入空閒佇列中。如實際空閒連線數大於初始空閒連線數則釋放連線)。

(6)釋放資料庫連線池物件(伺服器停止、維護期間,釋放資料庫連線池物件,並釋放所有連線)。

1 .連線池的概念和為什麼要使用連線池?

連線池放了n個connection物件,本質上放在記憶體當中,在記憶體中劃出一塊快取物件,應用程式每次從池裡獲得connection物件,而不是直接從資料裡獲得,這樣不占用伺服器的記憶體資源。

2 .如果不使用連線池會出現的情況:

a.占用伺服器的記憶體資源

b.導致伺服器的速度非常慢

3 .應用連線池的三種方式:

a.自定義連線池

b.使用第三方連線池

c.使用伺服器自帶的連線池

連線池一般比直接連線更有優越性,因為它提高了效能的同時還儲存了寶貴的資源。在整個應用程式的使用過程,當中重複的開啟直接連線將導致效能的下降

。而池連線只在伺服器啟動時開啟一次,從而消除了這種效能問題。

連線池主要考慮的是效能

,每次獲取連線和釋放連線都有很大的工作量,會對效能有很大影響;而對資源

來說起的是反作用,因為儲存一定數量的連線是要消耗記憶體的。應用程式每次從池裡獲得

connection

物件,而不是直接從資料裡獲得,這樣不占用伺服器的記憶體資源。

所以一般要建立連線池,而連線的數量要適當,不能太大,太大會過多消耗資源。(

所以,考慮

2個方面,乙個是記憶體,另乙個是資源

)。連線池就是為了避免重複多次的開啟資料庫連線而造成的效能的下降和系統資源的浪費。

配置:driverclassname:是資料庫驅動的名稱

url:是資料庫的位址

username:是登陸資料庫的使用者名稱

password:是登陸資料庫的密碼

maxidle,最大空閒數,資料庫連線的最大空閒時間。超過空閒時間,資料庫連

接將被標記為不可用,然後被釋放。設為0表示無限制。

maxactive,連線池的最大資料庫連線數。設為0表示無限制。

maxwait ,最大建立連線等待時間。如果超過此時間將接到異常。設為-1表示

無限制。

*maxactive:最大連線資料庫連線數,設 0 為沒有限制 

*maxidle:最大等待連線中的數量,設 0 為沒有限制 

*maxwait:最大等待毫秒數, 單位為 ms, 超過時間會出錯誤資訊

一般把maxactive設定成可能的併發量就行了

maxactive、maxidle和maxwait引數:

maxactive是最大啟用連線數,這裡取值為15,表示同時最多有15個資料庫連 

接。maxidle是最大的空閒連線數,這裡取值為10,表示即使沒有資料庫連線時依然可以保持20空閒的

連線,而不被清除,隨時處於待命狀態。maxwait是最大等待秒鐘數,這裡取值10000,表示10秒等待,直到

超時為止,也可取值9000,表示9秒後超時。

備註:

dbcp這個連線池官網已經不推薦使用了,因為實踐中發現存在bug

mysql 連線池的作用 資料庫連線池的作用

對於乙個簡單的資料庫應用,由於對於資料庫的訪問不是很頻繁。這時可以簡單地在需要訪問資料庫時,就新建立乙個連線,用完後就關閉它,這樣做也不會帶來什麼明顯的效能上的開銷。但是對於乙個複雜的資料庫應用,情況就完全不同了。頻繁的建立 關閉連線,會極大的減低系統的效能,因為對於連線的使用成了系統效能的瓶頸。連...

nhibernate連線池配置

nhibernate連線池配置 nhibernate.driver.sqlclientdriver server 127.0.0.1 initial catalog sun user id sun password 123456 min pool size 10 max pool size 50 c...

tomcat 連線池配置

maxidle,最大空閒數,資料庫連線的最大空閒時間。超過空閒時間,資料庫連線將被標記為不可用,然後被釋放。設為0表示無限制。maxactive,連線池的最大資料庫連線數。設為0表示無限制。maxwait 最大建立連線等待時間。如果超過此時間將接到異常。設為 1表示無限制。maxactive 最大連...