Python資料庫連線池DBUtils

2022-09-18 02:06:22 字數 1383 閱讀 5543

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')

def task(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')

def task(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()

無鎖(報錯)

ps: 檢視連線 show status like 'threads%';

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...