IT评测·应用市场-qidao123.com

标题: 数据库连接池----DBUtils的利用 [打印本页]

作者: 渣渣兔    时间: 2025-3-1 16:39
标题: 数据库连接池----DBUtils的利用
  DBUtils 是一个用于管理数据库连接池的 Python 库,它提供了连接池的管理,可以避免每次举行数据库利用时都重新建立连接。通过 DBUtils,你可以更高效地管理数据库连接,尤其在高并发的情况下,能够有用淘汰创建和烧毁连接的开销。DBUtils 支持多种数据库驱动,包括 MySQL、PostgreSQL、SQLite 等。
安装DBUtils

起首,利用 pip 安装 DBUtils:
  1. pip install dbutils
复制代码
利用 DBUtils 连接池

以下是一个怎样利用 DBUtils 管理 MySQL 数据库连接池的简朴示例。
  1. import MySQLdb
  2. from dbutils.pooled_db import PooledDB
  3. # 创建数据库连接池
  4. pool = PooledDB(
  5.     creator=MySQLdb,    # 数据库驱动,使用 MySQLdb 连接 MySQL 数据库
  6.     maxconnections=10,   # 连接池中允许的最大连接数
  7.     mincached=2,         # 初始化时创建的空闲连接数
  8.     maxcached=5,         # 连接池中空闲连接的最大数量
  9.     maxshared=3,         # 连接池中共享连接的最大数目
  10.     blocking=True,       # 如果没有可用连接时,是否阻塞等待
  11.     host='localhost',    # 数据库主机地址
  12.     user='your_username',# 数据库用户名
  13.     passwd='your_password', # 数据库密码
  14.     db='your_database',  # 数据库名
  15.     port=3306            # 数据库端口
  16. )
  17. # 从连接池获取一个连接
  18. conn = pool.connection()
  19. # 获取游标
  20. cursor = conn.cursor()
  21. # 执行查询操作
  22. try:
  23.     cursor.execute("SELECT * FROM your_table")
  24.     result = cursor.fetchall()
  25.     for row in result:
  26.         print(row)
  27. finally:
  28.     cursor.close()  # 关闭游标
  29.     conn.close()    # 将连接归还到连接池
复制代码
代码解释

1.创建连接池:PooledDB 用来创建数据库连接池。它的参数如下:


2.获取连接: 利用 pool.connection() 从连接池获取一个数据库连接。

3.利用数据库: 利用连接创建游标 conn.cursor(),然后执行 SQL 语句来查询或修改数据库。

4.关闭游标和连接: 利用 cursor.close() 关闭游标,而且用 conn.close() 将连接归还给连接池,而不是实际关闭连接。

设置选项:


利用 DBUtils 举行数据库利用

执行插入利用

  1. conn = pool.connection()
  2. cursor = conn.cursor()
  3. try:
  4.     cursor.execute("INSERT INTO your_table (col1, col2) VALUES (%s, %s)", ('value1', 'value2'))
  5.     conn.commit()  # 提交事务
  6. finally:
  7.     cursor.close()
  8.     conn.close()
复制代码
执行更新利用

  1. conn = pool.connection()
  2. cursor = conn.cursor()
  3. try:
  4.     cursor.execute("UPDATE your_table SET col1 = %s WHERE col2 = %s", ('new_value', 'value2'))
  5.     conn.commit()  # 提交事务
  6. finally:
  7.     cursor.close()
  8.     conn.close()
复制代码
异常处置惩罚

利用连接池时,可以通过异常处置惩罚来捕获数据库利用中的错误:
  1. try:
  2.     conn = pool.connection()
  3.     cursor = conn.cursor()
  4.     cursor.execute("SELECT * FROM your_table")
  5.     result = cursor.fetchall()
  6.     for row in result:
  7.         print(row)
  8. except Exception as e:
  9.     print(f"An error occurred: {e}")
  10. finally:
  11.     cursor.close()
  12.     conn.close()
复制代码
长处


总结

DBUtils 是一个非常方便的库,可以帮助你在 Python 中高效地管理数据库连接池。通过合理设置连接池的大小、空闲连接数和最大连接数,可以有用提升数据库利用的性能和资源利用率。对于高并发的爬虫、Web 应用等项目非常有用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4