zoukankan      html  css  js  c++  java
  • Mysql 连接池

    通常,如果我们的服务涉及到mysql的操作,当一个新的请求进来的时候,可以先连接mysql, 使用完之后再断开连接即可。



    但这样做有个弊端,当请求量巨大时,会在瞬间有大量的数据库连接与断开操作,这是非常影响 mysql 性能的做法。此时,我们就需要使用Mysql连接池。

    在 Python 服务中使用 Mysql 连接池

    1、建立连接池,sqllib.py

    import pymysql
    from DBUtils.PooledDB import PooledDB
    
    import Config
    
    class MysqlPool():
        __pool = None
        def __init__(self):
            self.conns = self.getPools()
    
        def getPools(self):
            __pool = PooledDB(
                creator=pymysql,
                mincached=1,
                maxcached=20,
                host=Config.host,
                user=Config.user,
                passwd=Config.password,
                db=Config.dbname,
                port=Config.port,
                charset=Config.charset
            )
            return __pool
            
    
    • mincached: 最小空闲连接数
    • maxcached: 最大空闲连接数
    • maxconnections: 最大允许连接数


    2、使用连接池,server.py

    from sqllib import MysqlPool
    
    pool = MysqlPool()
    
    @app.route('/test', method=['POST'])
    def test():
        db = pool.conns.connection()
        processing()
        db.close()
    
    • db = pool.conns.connection()

      从连接池中获取一个连接
    • db.close()

      连接使用完毕,将连接放回连接池。
  • 相关阅读:
    bzoj 1217: [HNOI2003]消防局的设立
    [USACO09FEB]庙会班车Fair Shuttle
    bzoj 1052: [HAOI2007]覆盖问题
    bzoj 1974: [Sdoi2010]代码拍卖会
    bzoj 1835: [ZJOI2010]基站选址
    bzoj 1875: [SDOI2009]HH去散步
    bzoj 3295: [Cqoi2011]动态逆序对
    bzoj 2120: 数颜色
    P1032 字串变换
    简析拓扑排序
  • 原文地址:https://www.cnblogs.com/Fosen/p/12609070.html
Copyright © 2011-2022 走看看