Python資料庫連線池DBUtils

2021-08-23 14:43:47 字數 1542 閱讀 2434

dbutils是python的乙個用於實現資料庫連線池的模組。

此連線池有兩種連線模式:

如果沒有連線池,使用pymysql來連線資料庫時,單執行緒應用完全沒有問題,但如果涉及到多執行緒應用那麼就需要加鎖,一旦加鎖那麼連線勢必就會排隊等待,當請求比較多時,效能就會降低了。

#

!/usr/bin/env python

#-*- coding:utf-8 -*-

import

pymysql

import

threading

from threading import

rlock

lock =rlock()

conn = pymysql.connect(host='

127.0.0.1',

port=3306,

user='

root',

password='

123'

, database='

pooldb',

charset='

utf8')

deftask(arg):

with lock:

cursor =conn.cursor()

cursor.execute(

'select * from tb1')

result =cursor.fetchall()

cursor.close()

print

(result)

for i in range(10):

t = threading.thread(target=task, args=(i,))

t.start()

加鎖

#

!/usr/bin/env python

#-*- coding:utf-8 -*-

import

pymysql

import

threading

conn = pymysql.connect(host='

127.0.0.1',

port=3306,

user='

root',

password='

123'

, database='

pooldb',

charset='

utf8')

deftask(arg):

cursor =conn.cursor()

cursor.execute(

'select * from tb1')

result =cursor.fetchall()

cursor.close()

print

(result)

for i in range(10):

t = threading.thread(target=task, args=(i,))

t.start()

無鎖(報錯)

python 資料庫連線池

from dbutils.pooleddb import pooleddb import pymysql pool pooleddb creator pymysql,使用鏈結資料庫的模組 maxconnections 6,連線池允許的最大連線數,0和none表示不限制連線數 mincached 2,...

資料庫連線池 Redis連線池

基本原理 在內部物件池中,維護一定數量的資料庫連線,並對外暴露資料庫連線的獲取和返回方法。如外部使用者可通過getconnection方法獲取資料庫連線,使用完畢後再通過releaseconnection方法將連線返回,注意此時的連線並沒有關閉,而是由連線池管理器 並為下一次使用做好準備。2.作用 ...

資料庫連線池

實現資料連線池,讓系統有更高有執行效率 using system using system.data using system.data.sqlclient using system.collections using system.threading public class dataaccess...