不用鏈接池的MySQL鏈接方法html
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()
用鏈接池後的鏈接方法sql
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