標籤:擷取 blog .com 串連數 cal python share 最大的 hal
python中實現mysql串連池
import pymysqlfrom DBUtils.PooledDB import PooledDBLOCALHOST = ‘localhost‘USER = ‘root‘PASSWORD = ‘root‘DB = ‘python3‘PORT = 3306pool = PooledDB(pymysql, 5, host=LOCALHOST, user=USER, passwd=PASSWORD, db=DB, port=PORT) # 5為串連池裡的最少串連數conn = pool.connection() # 以後每次需要資料庫連接就是用connection()函數擷取串連就好了cur = conn.cursor()SQL = "select * from url_file_path500 limit 3"r = cur.execute(SQL)re = cur.fetchall()print(re)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.關閉串連的時候,把串連放回串連池,而不是真正的關閉,所以可以減少頻繁地開啟和關閉串連
詳見:
https://www.cnblogs.com/Xjng/p/3437694.html
python中實現mysql串連池