Python mysql数据库连接池

最近在写一个Python的文本分析,需要大量的读取数据库(千万级别mysql)并进行更新操作,运行着程序发现一个问题,过了一会儿程序就报错说链接已经满了,或者是端口不可重复使用,因此我在网上找到了一个连接池的代码用于解决这个问题,在此处贴出代码

本身是有配置文件的,因为我觉得在我的项目中不必要 所以就删除了

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
from dbutils.pooled_db import PooledDB
from pymysql.cursors import DictCursor


class MyPymysqlPool():
    """
    MYSQL数据库对象,负责产生数据库连接 , 此类中的连接采用连接池实现获取连接对象:conn = Mysql.getConn()
            释放连接对象;conn.close()或del conn
    """
    # 连接池对象
    __pool = None

    def __init__(self):
        # self.conf = Config().get_content(conf_name)
        # super(MyPymysqlPool, self).__init__(**self.conf)
        # 数据库构造函数,从连接池中取出连接,并生成操作游标
        self._conn = self.__getConn()
        self._cursor = self._conn.cursor()

    def __getConn(self):
        """
        @summary: 静态方法,从连接池中取出连接
        @return MySQLdb.connection
        """
        if MyPymysqlPool.__pool is None:
            __pool = PooledDB(creator=pymysql,
                              mincached=1,
                              maxcached=20,
                              host='127.0.0.1',
                              port=3306,
                              user='root',
                              passwd='123123',
                              db='hotel_now',
                              use_unicode=False,
                              charset="utf8mb4",
                              cursorclass=DictCursor)
       

你可能感兴趣的:(Python)