DBUtils:一套Python数据库连接池包

DBUtils是一套Python数据库连接池包,允许对非线程安全的数据库接口进行线程安全包装。DBUtils 仅提供给了连接池管理,实际的数据库操作依然是由符合 DB-API 2 标准的目标数据库模块完成的。

DBUtils提供两种外部接口:

  • PersistentDB :提供线程专用的数据库连接,并自动管理连接-。
  • PooledDB :提供线程间可共享的数据库连接,并自动管理连接。

实测证明 PersistentDB 的速度是最高的,但是在某些特殊情况下,数据库的连接过程可能异常缓慢,而此时的PooledDB则可以提供相对来说平均连接时间比较短的管理方式。可以考虑直接用PooledDB.

连接池对象只初始化一次,一般可以作为模块级代码来确保。

示例参考: https://cito.github.io/DBUtils/UsersGuide.html

PostgreSQL连接池示例,需要先安装相关的模块:

conda install psycopg2
pip install DBUtils

示例代码:

import psycopg2   
from dbutils.pooled_db import PooledDB  


pgpool = PooledDB(creator=psycopg2,mincached=0,maxcached=10,\
                  host='127.0.0.1',
                  port=5432,
                  user='postgres',
                  password='pgpassword',
                  database='pgdb')

sql = 'select * from tbname;'
db = pgpool.connection()
cur = db.cursor()
cur.execute(sql)
result =  cur.fetchall()           
cur.close()
db.close()
© Licensed under CC BY-NC-SA 4.0

实力永远意味着责任和危险。 —— 罗斯福. T.

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!