pymysql如何使用连接池
时间: 2025-01-29 15:36:54 浏览: 59
### pymysql 连接池简介
为了提高数据库访问效率,减少频繁建立和销毁连接带来的开销,在 Python 中使用 `pymysql` 库时推荐采用连接池机制。通过连接池管理数据库连接能够显著提升应用程序性能。
### 安装依赖库
在开始之前,确保已经安装了必要的包:
```bash
pip install DBUtils pymysql
```
DBUtils 提供了一个简单易用的接口用于创建不同类型的数据库连接池,支持多种数据库驱动程序,包括 PyMySQL。
### 创建 MySQL 数据库连接池
下面是一个完整的例子展示如何设置基于 `pymysql` 的连接池,并执行简单的查询操作:
```python
from dbutils.pooled_db import PooledDB
import pymysql
def create_pool():
pool = PooledDB(
creator=pymysql, # 使用PyMySQL作为底层数据库驱动
maxconnections=6, # 最大连接数
mincached=2, # 初始化时至少创建两个空闲连接
blocking=True, # 当连接耗尽时是否等待(True), 若为False则抛出异常
host='localhost',
user='root',
password='',
database='testdb'
)
return pool
if __name__ == '__main__':
mysql_pool = create_pool()
conn = mysql_pool.connection() # 获取一个可用的连接对象
try:
cursor = conn.cursor()
sql_query = "SELECT * FROM users LIMIT 5"
cursor.execute(sql_query)
results = cursor.fetchall()
for row in results:
print(row)
finally:
cursor.close()
conn.close() # 将连接返回给连接池而非真正关闭它
```
此代码片段展示了如何利用 `PooledDB` 来初始化一个带有参数配置的连接池实例[^1]。当调用 `.connection()` 方法获取连接时,实际上是从池子里取出一个已有的连接;而显式的 close 调用会把该连接放回池子里面以便后续重用。
阅读全文
相关推荐

















