作家
登录

Python MySQL数据库连接池组件

作者: 来源: 2017-06-22 16:05:38 阅读 我要评论

Python MySQL数据库连接池组件

引言

pymysqlpool 是数据库对象包中新成员,目标是能供给一个实用的数据库连接池中心件,大年夜而避免在应用中频繁地创建和释放数据库连接资本。

功能

  1. 连接池本身是线程安然的,可在多线程情况下应用,不必担心连接资本被多个线程共享的问题;
  2. 供给尽可能紧凑的接口用于数据库操作;
  3. 连接池的治理位于包内完成,客户端可以经由过程接口获取池中的连接资本(返回 pymysql.Connection );
  4. 将最大年夜程度地与 dataobj 等兼容,便于应用;
  5. 连接池本身具备动态增长连接数的功能,即 max_pool_size 和 step_size 会用于控制每次增长的连接数和最大年夜连接数;
  6. 连接池最大年夜连接数亦动态增长,须要开启 enable_auto_resize 开关,此后当任何一次连接获取超时产生,均记为一次处罚,并且将 max_pool_size 扩大年夜必定倍数。

依附

根本工作流程

留意,当多线程同时请求时,若池中没有可用的连接对象,则须要列队等待

  1. 初始化后优先创建 step_size 个连接对象,放在连接池中;
  2. 客户端请求连接对象,连接池会大年夜中遴选比来没应用的连接对象返回(同时会检查连接是否正常);
  3. 客户端应用连接对象,履行响应操作后,调用接口返回连接对象;
  4. 连接池收受接收连接对象,并将其参加池中的队列,供其它请求应用。
  1. |--------|                                |--------------| 
  2. |        | <==borrow connection object==  | Pool manager | 
  3. | Client |                                |              | 
  4. |        | ==return connection object==>  |  FIFO queue  | 
  5. |--------|                                |--------------| 

数设备

  • pool_name: 连接池的名称,多种连接参数对应多个不合的连接池对象,多单例模式;
  • host: 数据库地址
  • user: 数据库办事器用户名
  • password: 用户暗码
  • database: 默认选择的数据库
  • port: 数据库办事器的端口
  • charset: 字符集,默认为 ‘utf8’
  • use_dict_cursor: 应用字典格局或者元组返回数据;
  • max_pool_size: 连接池优先最大年夜连接数;
  • step_size: 连接池动态增长连接数大年夜小;
  • enable_auto_resize: 是否动态扩大连接池,即当跨越 max_pool_size 时,主动扩大 max_pool_size ;
  • pool_resize_boundary: 该设备为连接池最终可以增长的上上限大年夜小,即时扩大也弗成跨越该值;
  • auto_resize_scale: 主动扩大 max_pool_size 的增益,默认为 1.5 倍扩大;
  • wait_timeout: 在列队等待连接对象时,最多等待多久,当超不时连接池测验测验主动扩大当前连接数;
  • kwargs: 其他设备参数将会在创建连接对象时传递给 pymysql.Connection

应用示例

1.应用 cursor 高低文治理器(快捷方法,但每次获取都邑申请连接对象,多次调用效力不高):

  1. from pymysqlpool import ConnectionPool 
  2.  
  3. config = { 
  4.     'pool_name''test'
  5.     'host''localhost'
  6.     'port': 3306, 
  7.     'user''root'

      推荐阅读

      6个月融资超50亿元,云计算创业团队正做得风生水起?

    此外,私有云市场对技巧请求低于公有云市场,同时又有各类开源技巧,也导致了该范畴内的竞争厂商数量明显多于公有云。在以前的180天里,在云计算范畴共有18家创虻公司获得融资,金额总数跨>>>详细阅读


    本文标题:Python MySQL数据库连接池组件

    地址:http://www.17bianji.com/lsqh/35872.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)