標籤:mda cut ash exe mysqldb padding top min htm
不用串連池的MySQL串連方法
import MySQLdbconn= 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 MySQLdbfrom DBUtils.PooledDB import PooledDBpool = 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
Python資料庫連接池執行個體——PooledDB