参考:http://blog.sina.com.cn/s/blog_73951d180101eck0.html
webpy简单易用,而且非常轻量。尤其其操作数据库非常方便。
import web db = web.database(dbn=DBN,host=HOST,db=DATABASE,user=USER,pw=PASSWORD, charset=CHARSET) data = db.select([‘i_project‘], what=‘ p_class ‘, where=‘p_id = $PlatformBatchID‘, limit=‘1‘, vars=locals() )
但却不会主动释放连接,随着时间连接数会越来越多。
监控mysql连接数
show full processlist; show status like ‘%conn%‘;
解决方法
1)安装DBUtils
1.0)安装
pip install DBUtils
1.2)使用
db = web.database(maxshared=5,mincached=1,maxcached=5,maxconnections=10,dbn=DBN,host=HOST,db=DATABASE,user=USER,pw=PASSWORD, charset=CHARSET)
* mincached : 启动时开启的空连接数量(缺省值 0 意味着开始时不创建连接)
* maxcached: 连接池使用的最多连接数量(缺省值 0 代表不限制连接池大小)
* maxshared: 最大允许的共享连接数量(缺省值 0 代表所有连接都是专用的)如果达到了最大数量,被请求为共享的连接将会被共享使用。
* maxconnections: 最大允许连接数量(缺省值 0 代表不限制)
2)主动释放连接数及cursor
finally: #close cursor self.db._db_cursor().close() #close connection self.db._db_cursor().connection.close()
原文:http://my.oschina.net/u/2351685/blog/505623