pymysql
是一个用于连接 MySQL 数据库的 Python 库。连接池是一种管理数据库连接的技术,它预先创建一组数据库连接,并将这些连接保存在一个池中,应用程序可以从池中获取连接,使用完毕后再将连接归还到池中。这样可以减少频繁创建和销毁连接的开销,提高数据库访问的效率。
以下是一个使用 pymysql
和 DBUtils
实现连接池的示例代码:
import pymysql
from DBUtils.PooledDB import PooledDB
# 创建连接池
pool = PooledDB(
creator=pymysql, # 使用 pymysql 作为连接创建器
maxconnections=10, # 最大连接数
mincached=2, # 初始化时至少创建的空闲连接数
maxcached=5, # 最大空闲连接数
maxshared=3, # 最大共享连接数
blocking=True, # 连接池满时是否阻塞等待
host='localhost',
user='root',
password='password',
database='testdb',
charset='utf8mb4'
)
# 从连接池中获取连接
conn = pool.connection()
try:
with conn.cursor() as cursor:
sql = "SELECT * FROM users"
cursor.execute(sql)
result = cursor.fetchall()
print(result)
finally:
conn.close() # 归还连接到连接池
blocking=True
,连接池满时会阻塞等待,直到有空闲连接。blocking=False
,连接池满时会抛出异常,需要捕获并处理。conn.close()
将连接归还到连接池。with
语句)自动管理连接的获取和归还。ping
参数,定期检查连接的有效性。通过以上方法,可以有效管理和优化数据库连接,提高系统的性能和稳定性。
领取专属 10元无门槛券
手把手带您无忧上云