Python MySQL 连接池

原创 2017年08月31日 23:12:15

Config.py

DB_HOST_1="192.167.121.151";
DB_HOST_2="192.167.121.152";
DB_HOST_3="192.167.121.153";
DB_HOST_4="192.167.121.154";
DB_HOST_5="192.167.121.155";
DB_HOST_6="192.167.121.156";
DB_HOST_7="192.167.121.157";
DB_HOST_8="192.167.121.158";
DB_PORT=3306;
DB_NAME="ys_api";
DB_USER="root";
DB_PWD="pwdtest";
DB_CHAR="utf8mb4";
DB_MIN_CACHED=200;
DB_MAX_CACHED=200;
DB_MAX_SHARED=3000;
DB_MAX_CONNECYIONS=10000;
DB_BLOCKING=True;
DB_MAX_USAGE=0;
DB_SET_SESSION=None;

MySQLConn.py

import MySQLdb
from MySQLdb.cursors import DictCursor
from DBUtils.PooledDB import PooledDB

import Config
#print 'class'
class MySQLConn(object):
        __pool = None
        def __init__(self):
                #for i in range(0):
                self._conn_151=MySQLConn.__getConn(self,Config.DB_HOST_1)
                self._conn_152=MySQLConn.__getConn(self,Config.DB_HOST_2)
                self._conn_153=MySQLConn.__getConn(self,Config.DB_HOST_3)
                self._conn_154=MySQLConn.__getConn(self,Config.DB_HOST_4)
                self._conn_155=MySQLConn.__getConn(self,Config.DB_HOST_5)
                self._conn_156=MySQLConn.__getConn(self,Config.DB_HOST_6)
                self._conn_157=MySQLConn.__getConn(self,Config.DB_HOST_7)
                self._conn_158=MySQLConn.__getConn(self,Config.DB_HOST_8)
                self._conn_base=MySQLConn.__getConn(self,Config.DB_HOST_8)
                #ip='192.167.121.15'+str(i+1)
                #self._conn = MySQLConn.__getConn(ip)
                #self._cursor = self._conn.cursor()



        @staticmethod
        def __getConn(self,ip):
                if MySQLConn.__pool is None:
                        #print ip,Config.DB_PORT,Config.DB_USER,Config.DB_PWD,Config.DB_CHAR
                        #__pool = PooledDB(creator=MySQLdb,mincached=1,maxcached=30,maxusage=Config.DB_MAX_USAGE,host=ip,port=Config.DB_PORT,user=Config.DB_USER,passwd=Config.DB_PWD,db=Config.DB_NAME,use_unicode=False,charset=Config.DB_CHAR,cursorclass=DictCursor,maxusage=10000) 
                        __pool = PooledDB(creator=MySQLdb,mincached=1,maxcached=10,maxusage=Config.DB_MAX_USAGE,host=ip,port=Config.DB_PORT,user=Config.DB_USER,passwd=Config.DB_PWD,db=Config.DB_NAME,use_unicode=False,charset=Config.DB_CHAR,cursorclass=DictCursor)
                return __pool.connection()

        desc='this is mysql pool !'
        def dispose(self,isEnd=1):
                if isEnd==1:
                    self.end('commit')
                else:
                    self.end('rollback');
                self._cursor.close()
                self._conn.close()

Python--Mysql连接池使用案例

1、工程结构 2、Config.py # coding:utf-8 ''''' Created on 2016年5月7日 @author: baocheng ''' DBHOST ...
  • xuguokun1986
  • xuguokun1986
  • 2017年04月11日 09:47
  • 730

Python实现Mysql数据库连接池

python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且...
  • zbc1090549839
  • zbc1090549839
  • 2016年05月07日 10:57
  • 21596

python mysql使用连接池的通用操作类

以前用MySQLdb和PooledDB写过一个后来找不到了,现在重新写一个。因为PooledDB似乎是不支持python3的,所以我这里使用的是mysql官方的连接器mysql.connector.p...
  • paololiu
  • paololiu
  • 2016年09月26日 15:20
  • 3628

Python数据连接池与mysql配合用法

# -*- coding: UTF-8 -*- """ desc:数据库操作类 @note: 1、执行带参数的SQL时,请先用sql语句指定需要输入的条件列表,然后再用tuple/list进行条件批配...
  • u013690521
  • u013690521
  • 2016年10月25日 14:39
  • 1149

momoko tornado 连接池 异步

import tornado.ioloop import tornado.web import momoko from tornado import gen cla...
  • hewy0526
  • hewy0526
  • 2012年12月08日 23:49
  • 1460

python3.0 django mysql连接池说明

使用python的django框架连接数据库,操作数据库代码: import logging from django.db import connection LOG = logging.getLo...
  • kelindame
  • kelindame
  • 2016年09月05日 21:34
  • 1997

Python -mysql 连接池

参考廖雪峰网站 MySQL是Web世界中使用最广泛的数据库服务器。 SQLite的特点是轻量级、可嵌入,但不能承受高并发访问,适合桌面和移动应用。 MySQL是为服务器端设计的数据库,能承受高并发访问...
  • yanyangjie
  • yanyangjie
  • 2017年11月23日 09:59
  • 142

Python数据库连接池 《DBUtils用户指南》

DBUtils 用户指南 版本: 0.9.2 发行版: ...
  • gashero
  • gashero
  • 2007年04月24日 11:14
  • 20821

Python 数据库的连接池

在Python中如果对象定义了__del__方法的话,在对象的引用记数为0时会自动调用__del__方法(很象c++中的析构函数),但如果A对象引用B对象,B对象又引用A对象,就形成循环引用,此时A,...
  • bluehawksky
  • bluehawksky
  • 2014年09月05日 16:03
  • 2505

python爬虫<在Pipeline创建数据连接池批量写入MySQL>

以下是连接池的参数说明: def __init__(self, creator, mincached=0, maxcached=0, maxshared...
  • Gpwner
  • Gpwner
  • 2017年10月30日 13:44
  • 293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python MySQL 连接池
举报原因:
原因补充:

(最多只允许输入30个字)