不用連接配接池的MySQL連接配接方法
import MySQLdb
conn= MySQLdb.connect(host='localhost',user='root',passwd='pwd',db='myDB',port=3306)
cur=conn.cursor()
SQL="select * from table1"
r=cur.execute(SQL)
r=cur.fetchall()
cur.close()
conn.close()
用連接配接池後的連接配接方法
import MySQLdb
from DBUtils.PooledDB import PooledDB
pool = PooledDB(MySQLdb,5,host='localhost',user='root',passwd='pwd',db='myDB',port=3306) #5為連接配接池裡的最少連接配接數
conn = pool.connection() #以後每次需要資料庫連接配接就是用connection()函數擷取連接配接就好了
cur=conn.cursor()
SQL="select * from table1"
r=cur.execute(SQL)
r=cur.fetchall()
cur.close()
conn.close()
PooledDB的參數:
1. mincached,最少的空閑連接配接數,如果空閑連接配接數小于這個數,pool會建立一個新的連接配接
2. maxcached,最大的空閑連接配接數,如果空閑連接配接數大于這個數,pool會關閉空閑連接配接
3. maxconnections,最大的連接配接數,
4. blocking,當連接配接數達到最大的連接配接數時,在請求連接配接的時候,如果這個值是True,請求連接配接的程式會一直等待,直到目前連接配接數小于最大連接配接數,如果這個值是False,會報錯,
5. maxshared 當連接配接數達到這個數,新請求的連接配接會分享已經配置設定出去的連接配接
在uwsgi中,每個http請求都會分發給一個程序,連接配接池中配置的連接配接數都是一個程序為機關的(即上面的最大連接配接數,都是在一個程序中的連接配接數),而如果業務中,一個http請求中需要的sql連接配接數不是很多的話(其實大多數都隻需要建立一個連接配接),配置的連接配接數配置都不需要太大。
連接配接池對性能的提升表現在:
1.在程式建立連接配接的時候,可以從一個空閑的連接配接中擷取,不需要重新初始化連接配接,提升擷取連接配接的速度
2.關閉連接配接的時候,把連接配接放回連接配接池,而不是真正的關閉,是以可以減少頻繁地打開和關閉連接配接
原文轉自: http://www.cnblogs.com/Xjng/p/3437694.html