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配置具体使用. 这个章节主要实现自己的 ...
随机推荐
- Unity3D中UGUI使用ScrollBar之后保存,工程启动报错原因跟踪
笔者不久前将Unity3D版本更新为4.6.2之后.在使用新UI的时候发现关闭项目之后经常再次打开项目会出现一对的报错. 找了一圈,发现是ScrollBar控件出现了BUG.整个空间的滑块消失了. 在 ...
- C++按行读取和写入文件
按行读取: 假设有一个文本文件,如下所示: 1 2 32 3 43 4 55 6 77 8 9 文件名为split.txt 目的:按照行读取数据,并一个个的显示出来. 代码如下: #include & ...
- EMC、Pure和NetApp推新品,NAS闪存场景在哪里
Hardy 架构师技术联盟 All Flash/SSD存储的趋势势不可挡,未来在NAS服务上也是如此,眼下已经有非常多家初创厂商支持全SSD的NAS存储服务,包含EMC Isilion也推出了全闪存节 ...
- RSYNC在zabbix中的检查
RSYNC在zabbix中的检查 作者:高波 归档:学习笔记 2017/08/21 快捷键: Ctrl + 1 标题1 Ctrl + 2 标题2 Ctrl + 3 标题3 Ctr ...
- SQL Server从读写频繁的大表中删除大批量数据
如果我们直接用delete from语句来删除读写频繁的大表中的数据,很有可能会因为where的条件是全表扫描从而导致整个表被锁住了.如果该表是读写频繁的生产库那简直就是一场灾难,所有的线上读写请求都 ...
- mui区域滚动条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- MVC 使用IOC实现
实现步骤: 1. 实现IDependencyResolver接口并通过DependencyResolver.SetResolver告知MVC,将部分类型实例解析工作交由IoC容器来处理: using ...
- JS侦测设备旋转方向
window.onload = window.onresize = function initialLoad(){updateOrientation();} function updateOrient ...
- 第二百七十九节,MySQL数据库-pymysql模块操作数据库
MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...
- 小结:A* & IDA* & 迭代深搜
概要: 在dfs中,如果答案的深度很小但是却很宽,而且bfs还不一定好做的情况下,我们就综合bfs的优点,结合dfs的思想,进行有限制的dfs.在这里A*.IDA*和迭代深搜都是对dfs的优化,因此放 ...