假如你在开线程请求数据库中假如你以为所用时间太长的话,你就可以通过python数据库毗连池去改进一下在此方面的不敷之处,以下是文章的详细先容,你可以通过我们的文章对python数据库毗连池有一个更好的相识。
昨天测试了一下开500个线程去请求数据库,不外这个时间不清楚会耗几多。即同时提倡这么多的线程其效率会如何。于是想到是不是用数据库毗连池技能可以明明改进一下这样的毗连操纵呢。呆会整理完了之后要测试一个数据:频繁成立与封锁数据库毗连的效率与毗连池之间的机能比拟!
一、DBUtils模块进修
DBUtils实际上是一个包括两个子模块的Python包,一个用于毗连DB-API 2模块,另一个用于毗连典范的PyGreSQL模块。全局的DB-API 2变量
SteadyDB.py
用于不变数据库毗连
PooledDB.py
毗连池
PersistentDB.py
维持一连的数据库毗连(一连性毗连)
SimplePooledDB.py
简朴毗连池PS:先摘抄DB-API出来一下吧
<!–[if !vml]–><!–[endif]–>
安装为顶层模块来的两个模块提供根基处事, PersistentDB 和 PooledDB 。
DBUtils.PersistentDB 实现了强硬的、线程安详的、顽固的数据库毗连,利用DB-API 2模块。如下图展示了利用 PersistentDB 时的毗连层步调:DBUtils.PooledDB 实现了一个强硬的、线程安详的、有缓存的、可复用的数据库毗连,利用任何DB-API 2模块。如下图展示了利用 PooledDB 时的事情流程:
今朝供我们选择的有两个模块:PersistentDB 和 PooledDB 都是为了重用数据库毗连来提高机能,并保持数据库的不变性。
python setup.py install
详细的模块进修:
DBUtils.SimplePooledDB 是一个很是简朴的数据库毗连池实现。他比完善的 PooledDB 模块缺少许多成果。 DBUtils.SimplePooledDB 本质上雷同于 MiscUtils.DBPool 这个Webware的构成部门。你可以把它看作一种演示措施
DBUtils.SteadyDB 是一个模块实现了"强硬"的数据库毗连,基于DB-API 2成立的原始毗连。一个"强硬"的毗连意味着在毗连封锁之后,可能利用次数操纵限制时会从头毗连。一个典范的例子是数据库重启时,而你的措施仍然在运行并需要会见数据库,可能当你的措施毗连了一个防火墙后头的长途数据库,而防火墙重启时丢失了状态时。
一般来说你不需要直接利用 SteadyDB 它只是给接下