Python数据库连接池中两个模块的具体应用
如果你对Python数据库连接池有相关的实际操作步骤的了解,那你是否了解Python数据库连接池供我们选择的有两个模块的具体实际应用方案的相关步骤呢?如故你想在此方面有所收获的话,你就可以点击以下的文章。
Python数据库连接池目前供我们选择的有两个模块:
PersistentDB 和 PooledDB 都是为了重用数据库连接来提高性能,并保持数据库的稳定性。
所以选择何种模块,可以参考上面的解释。 PersistentDB 将会保持一定数量的连接供频繁使用。在这种情况下你总是保持固定数量的连接。如果你的程序频繁的启动和关闭线程,最好使用 PooledDB 。后面将会提到更好的调整,尤其在使用线程安全的DB-API 2模块时。
当然,这两个模块的接口是很相似的,你可以方便的在他们之间转换,并查看哪个更好一些。为了使用 PersistentDB 你首先需要通过创建 PersistentDB 的实例来设置一个特定数据库连接的生成器,床底如下参数:
creator: 可以使用任意返回 DB-API 2 连接对象的函数活 DB-API 2 兼容的数据库模块。maxusage: 一个连接最大允许复用次数(缺省为 0 或 False 意味着无限制的重用),当达到限制时,将会重新连接数据库setsession: 一个可选的SQL命令列表可以用于准备会话,如
["set datestyle to german", ...]
creator 函数或生成 DB-API 2 连接的函数,可以接受这里的附加参数,比如主机名、数据库、用户名、密码等等。你也可以选择传递给 creator 的其他参数,并允许提供失败重连和负载均衡。
为了使用 PooledDB 模块,你首先需要通过创建 PooledDB 来设置Python数据库连接池,传递如下参数:
creator: 可以生成 DB-API 2 连接的任何函数或 DB-API 2 兼容的数据库连接模块。mincached : 启动时开启的空连接数量(缺省值 0 意味着开始时不创建连接)maxcached: 连接池使用的最多连接数量(缺省值 0 代表不限制连接池大小)maxshared: 最大允许的共享连接数量(缺省值 0 代表所有连接都是专用的)如果达到了最大数量,被请求为共享的连接将会被共享使用。
maxconnections: 最大允许连接数量(缺省值 0 代表不限制)blocking: 设置在达到最大数量时的行为(缺省值 0 或 False 代表返回一个错误;其他代表阻塞直到连接数减少)
maxusage: 单个连接的最大允许复用次数(缺省值 0 或 False 代表不限制的复用)。当达到最大数值时,连接会自动重新连接(关闭和重新打开)
setsession: 一个可选的SQL命令列表用于准备每个会话,如
["set datestyle to german", ...]