DBUtils資料庫連線池

2022-05-15 19:38:22 字數 1345 閱讀 1788

使用資料庫連線池技術,可以重複使用多個資料庫連線,避免每次執行資料庫操作都建立連線和關閉連線,也避免了大型應用同時占用多個資料庫連線。

以連線mysql為例

import pymysql

from dbutils.pooleddb import pooleddb

pool = pooleddb(

creator=pymysql, # 使用鏈結資料庫的模組

maxconnections=6, # 連線池允許的最大連線數,0和none表示不限制連線數

mincached=2, # 初始化時,鏈結池中至少建立的空閒的鏈結,0表示不建立

maxcached=5, # 鏈結池中最多閒置的鏈結,0和none不限制

maxshared=3, # 鏈結池中最多共享的鏈結數量,0和none表示全部共享。ps: 無用,因為pymysql和mysqldb等模組的 threadsafety都為1,所有值無論設定為多少,_maxcached永遠為0,所以永遠是所有鏈結都共享。

blocking=true, # 連線池中如果沒有可用連線後,是否阻塞等待。true,等待;false,不等待然後報錯

maxusage=none, # 乙個鏈結最多被重複使用的次數,none表示無限制

setsession=, # 開始會話前執行的命令列表。如:["set datestyle to ...", "set time zone ..."]

ping=0, # ping mysql服務端,檢查是否服務可用。# 如:0 = none = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always

host='127.0.0.1',

port=3306,

user='root',

password='******',

database='test',

charset='utf8'

)def

func

(): conn = pool.connection() #從連線池中獲取乙個連線

cursor = conn.cursor()

cursor.execute('select * from students')

result = cursor.fetchall()

conn.close() # 把連線放回連線池中

print(result)

if __name__ == '__main__':

func()

參考

DBUtils資料庫連線池

使用資料庫連線池技術,可以重複使用多個資料庫連線,避免每次執行資料庫操作都建立連線和關閉連線,也避免了大型應用同時占用多個資料庫連線。以連線mysql為例 import pymysql from dbutils.pooleddb import pooleddb pool pooleddb creat...

Python資料庫連線池DBUtils

dbutils是python的乙個用於實現資料庫連線池的模組。此連線池有兩種連線模式 如果沒有連線池,使用pymysql來連線資料庫時,單執行緒應用完全沒有問題,但如果涉及到多執行緒應用那麼就需要加鎖,一旦加鎖那麼連線勢必就會排隊等待,當請求比較多時,效能就會降低了。usr bin env pyth...

資料庫連線池和DBUtils

dbcp資料來源連線池 dbcp配置檔案的使用 c3p0資料來源 c3p0資料庫配置檔案使用 dbutils工具 resultsethandler介面 dbutils的 過程 dbutils的 實現 當使用jdbc連線資料庫的時候,當有1000的使用者,你就要建立1000會連線物件和銷毀物件,這樣會...