怎么创建python数据库连接池
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"怎么创建python数据库连接池",在日常操作中,相信很多人在怎么创建python数据库连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么创建p
千家信息网最后更新 2026年11月01日怎么创建python数据库连接池
这篇文章主要介绍"怎么创建python数据库连接池",在日常操作中,相信很多人在怎么创建python数据库连接池问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么创建python数据库连接池"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、不使用数据库连接池,每次操作都要链接数据库,链接次数过多
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',password='123', database='pooldb',charset='utf8') cursor = conn.cursor() cursor.execute("select * from td where id=%s", [5, ]) result = cursor.fetchall() # 获取数据 cursor.close() conn.close() # 关闭链接这种方式每次请求,反复创建数据库链接,多次链接数据库会非常耗时
2、创建一个链接池,为所有线程提供连接,使用时来进行获取,使用完毕后在放回到连接池。
PS:假设最大链接数有10个,其实也就是一个列表,当你pop一个,系统会再append一个,链接池的所有的链接都是按照排队的这样的方式来链接的。链接池里所有的链接都能重复使用,共享的, 即实现了并发,又防止了链接次数太多
import timeimport pymysqlimport threadingfrom DBUtils.PooledDB import PooledDB, SharedDBConnectionPOOL = PooledDB( creator=pymysql, # 使用链接数据库的模块 maxconnections=6, # 连接池允许的最大连接数,0和None表示不限制连接数 mincached=2, # 初始化时,链接池中至少创建的空闲的链接,0表示不创建 maxcached=5, # 链接池中最多闲置的链接,0和None不限制 maxshared=3, # 链接池中最多共享的链接数量,0和None表示全部共享。PS: 无用,因为pymysql和MySQLdb等模块的 threadsafety都为1,所有值无论设置为多少,_maxcached永远为0,所以永远是所有链接都共享。 blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错 maxusage=None, # 一个链接最多被重复使用的次数,None表示无限制 setsession=[], # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."] ping=0, # ping MySQL服务端,检查是否服务可用。# 如:0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always host='127.0.0.1', port=3306, user='root', password='123', database='pooldb', charset='utf8')def func(): # 检测当前正在运行连接数的是否小于最大链接数,如果不小于则:等待或报raise TooManyConnections异常 # 否则 # 则优先去初始化时创建的链接中获取链接 SteadyDBConnection。 # 然后将SteadyDBConnection对象封装到PooledDedicatedDBConnection中并返回。 # 如果最开始创建的链接没有链接,则去创建一个SteadyDBConnection对象,再封装到PooledDedicatedDBConnection中并返回。 # 一旦关闭链接后,连接就返回到连接池让后续线程继续使用。 # PooledDedicatedDBConnection conn = POOL.connection() # print(th, '链接被拿走了', conn1._con) # print(th, '池子里目前有', pool._idle_cache, '\r\n') cursor = conn.cursor() cursor.execute('select * from tb1') result = cursor.fetchall() conn.close()到此,关于"怎么创建python数据库连接池"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
链接
数据
数据库
学习
最大
次数
对象
方式
更多
模块
线程
封装
帮助
服务
限制
实用
接下来
也就是
命令
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
互联网下的科技发展
互联网科技的
科技与互联网发展
互联网金融 科技金融
平安科技 互联网
万易互联网科技有限公司
亿策互联网科技
小马过河互联网科技
火传媒上海互联网科技
上海万想互联网科技
互联网科技视频素材
互联网 科技服务平台
互联网科技产品
欧洲十大科技互联网公司
移动互联网科技公司
卓翼科技产业互联网合作
上海互联网科技公司ppt
萌小萌互联网科技河南有限公司
上海万顺科技互联网有限公司招聘
互联网高科技
上海喔噻互联网科技有限公司
互联网是不是新科技
广州凡科互联网科技
互联网科技素材视频竖屏
互联网企业和科技型企业
上海钢联属于互联网科技股吗
杭州披云加互联网科技有限公司
南京一网一红互联网科技有限公司
科技和互联网行业的特点