mysql数据池设置
参考链接https://www.cnblogs.com/KKSoft/p/8040374.html
python的数据库连接池包:DBUtils
DBUtils提供两种外部接口:
- PersistentDB:提供线程专用的数据库连接,并自动管理连接。
- PooledDB:提供线程间可共享的数据库连接,并自动管理连接。
DBUtils包安装: pip3 install DBUtils
PooledDB参数解释:
- mincached,最少的空闲连接数,如果空闲连接数小于这个数,pool会创建一个新的连接。
- maxcached,最大的空闲连接数,如果空闲连接数大于这个数,pool会关闭空闲连接。
- maxconnections,最大的连接数,进程中最大可创建的线程数。
- blocking, 当连接数达到最大连接数时,再次请求时,如果这个值是True,请求连接的程序会一直等待,直到当前连接数小于最大连接数;如果这个值为False,会报错。
- masxshared,当连接数达到这个数时,新请求的连接会分享已经分配出去的连接。
在uwsgi中,每个http请求都会有一个进程,连接池中配置的连接数都是一个进程为单位的(即上面的最大连接数,都是在一个进程中创建的线程数),如果业务中,一个http请求中需要的sql连接数不是很多的话(其实大多数都只需要创建一个连接),配置的连接数配置都不需要太大。
连接池对性能的提升:
- 在程序创建连接的时候,可以从一个空闲的连接中获取,不需要重新初始化连接,提升获取连接的速度。
- 关闭连接的时候,把连接放回连接池,而不是真正的关闭,所以可以减少频繁的打开和关闭连接。
#encoding: utf8 import pymysql
import MySQLdb
from MySQLdb.cursors import DictCursor
from DBUtils.PooledDB import PooledDB mysqlinfo={
'host':'',
'port':,
'user':,
'password':,
'db':',
'charset':
} class OPMysql(object):
__pool=None def __init__(self):
self.conn=OPMysql.getmysqlconn()
self.cur=self.conn.cursor(cursor=pymysql.cursors.DictCursor) @staticmethod
def getmysqlconn():
if OPMysql.__pool is None:
__pool = PooledDB(creator=pymysql,mincached=1,maxshared=20,host=mysqlinfo.get('host'),
user=mysqlinfo.get('user'),password=mysqlinfo.get('password'),port=mysqlinfo.get('port'),
charset=mysqlinfo.get('charset'),db=mysqlinfo.get('db'))
print(__pool) return __pool.connection() def insert(self,sql):
print(sql)
insert_num=self.cur.execute(sql)
self.conn.commit()
return insert_num def select(self,sql):
print(sql)
self.cur.execute(sql)
select_num =self.cur.fetchone()
print(select_num)
self.conn.commit()
return select_num def dispose(self):
self.conn.close()
self.conn.close()
if __name__ == '__main__':
mysql=OPMysql()
mysql.select('select * from air_stations')
mysql.dispose()
mysql数据池设置的更多相关文章
- Flask使用mysql数据池
helper.py import pymysql from settings import Config def connect(): conn = Config.POOL.connection() ...
- Eclipse+Tomcat7.0+MySQL 连接池设置
http://blog.sina.com.cn/s/blog_85d71fb70101ab99.html 工程名:JavaWeb 第一步:配置server.xml 在Tomcat的server.xml ...
- 设置MySQL数据表主键
设置MySQL数据表主键: 使用“primary key”关键字创建主键数据列.被设置为主键列不允许出现重复的值,很多情况下与“auto_increment”递增数字相结合.如下SQL语句所示: My ...
- docker mysql 数据持久化到本地、设置不区别表名大小写-清风柳絮-51CTO博客
原文:docker mysql 数据持久化到本地.设置不区别表名大小写-清风柳絮-51CTO博客 Docker MySQL 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可 1.加上-v参数 ...
- 设置mysql数据表列自动递增以及数据行插入操作
创建mysql数据表,设置id列递增.主键create table running_log ( id int primary key auto_increment, routename varchar ...
- logstash使用template提前设置好maping同步mysql数据到Elasticsearch5.5.2
上篇blog说到采用logstash-input-jdbc将mysql数据同步到ES(http://www.cnblogs.com/jstarseven/p/7704893.html),但是这里有一个 ...
- MYSQL线程池总结(一)
线程池是Mysql5.6的一个核心功能,对于服务器应用而言,无论是web应用服务还是DB服务,高并发请求始终是一个绕不开的话题.当有大量请求并发访问时,一定伴随着资源的不断创建和释放,导致资源利用率低 ...
- MySQL具体解释(7)-----------MySQL线程池总结(一)
线程池是Mysql5.6的一个核心功能.对于server应用而言,不管是web应用服务还是DB服务,高并发请求始终是一个绕不开的话题.当有大量请求并发訪问时,一定伴随着资源的不断创建和释放.导致资源利 ...
- mysql数据库连接池使用(二)实现自己的数据库连接池
上一个章节,我们讲了xml文件的解析框架XMLConfiguration的使用,不懂的可以参考 Apache Commons Configuration读取xml配置具体使用. 这个章节主要实现自己的 ...
随机推荐
- 算法 quick sort
// ------------------------------------------------------------------------------------------------- ...
- JavaScrip——简单练习(输出方式,简单表单验证)
<script> //输出方式 document.write(Date());//获取当前时间 document.write(1); document.write("<p& ...
- Insubstantial 6.2 Release
http://shemnon.com/speling/2011/04/insubstantial-62-release.html
- PHP多进程(4) :内部多进程
说的都是只兼容unix 服务器的多进程,下面来讲讲在window 和 unix 都兼容的多进程(这里是泛指,下面的curl实际上是通过IO复用实现的). 通过扩展实现多线程的典型例子是CURL,CUR ...
- C语言 百炼成钢22
/* 题目58: 编写一个业务函数,实现按行读取文件.把内容按照第三种内存模型打包数据传出,把行数通过函数参数传出. 函数原型有两个,任意选择其一 要求1:请自己任意选择一个接口(函数),并实现功能: ...
- mysql -- 存储过程中 declare 和 set 定义变量的区别
mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 ...
- 修改Android 界面颜色
btnGetCode.setTextColor(getResources().getColor(R.color.dark_white)); Color.parseColor("#1a71d4 ...
- datatable详解(angular-datatable)+后台分页(springmvc)
datable常规配置,百度一大堆 function prepareDatatable(selector, options) { var defaultOptions = { autoWidth: t ...
- iOS 模块化
模块化 1.公共模块 网络层 模型层(基类) 2.mvvm 3.模块化(单元模块,实现单元功能,单元测试) 4.pod 5.路由
- AWS系列-S3实现文件服务页面展示
最近由于业务需求,对于备份的数据存放到S3上面,并需要页面展示.而且还能下载. 把这个桶里面的对象,都在某个静态页面展示.并且 我可以把这个对象下载下来. 首页内容就是 桶里面的对象. 并且可以随时查 ...