示例:
#!/usr/bin/python
# -*- coding:utf-8 -*-
# @time : 2017/11/21 0021 10:52
# @author : liaochao
# @file : demo2.py
import mysqldb
from dbutils.pooleddb import pooleddb
db_config =
pool = pooleddb(mysqldb,5,**db_config )
if __name__ == '__main__':
#以後每次需要資料庫連線就是用connection()函式獲取連線就好了
conn = pool.connection()
cur = conn.cursor()
sql = 'select * from test;'
try:
cur.execute(sql)
r = cur.fetchall()
print r
cur.close()
conn.commit()
except exception as e:
raise e
finally:
cur.close()
結果:((100l,),)
pooleddb的引數:
1. mincached,最少的空閒連線數,如果空閒連線數小於這個數,pool會建立乙個新的連線
2. maxcached,最大的空閒連線數,如果空閒連線數大於這個數,pool會關閉空閒連線
3. maxconnections,最大的連線數,
4. blocking,當連線數達到最大的連線數時,在請求連線的時候,如果這個值是true,請求連線的程式會一直等待,直到當前連線數小於最大連線數,如果這個值是false,會報錯,
5. maxshared 當連線數達到這個數,新請求的連線會分享已經分配出去的連線
在uwsgi中,每個http請求都會分發給乙個程序,連線池中配置的連線數都是乙個程序為單位的(即上面的最大連線數,都是在乙個程序中的連線數),而如果業務中,乙個http請求中需要的sql連線數不是很多的話(其實大多數都只需要建立乙個連線),配置的連線數配置都不需要太大。
連線池對效能的提公升表現在:
1.在程式建立連線的時候,可以從乙個空閒的連線中獲取,不需要重新初始化連線,提公升獲取連線的速度
2.關閉連線的時候,把連線放回連線池,而不是真正的關閉,所以可以減少頻繁地開啟和關閉連線
mysql連線池 順序 Mysql 連線池
通常,如果我們的服務涉及到mysql的操作,當乙個新的請求進來的時候,可以先連線mysql,使用完之後再斷開連線即可。但這樣做有個弊端,當請求量巨大時,會在瞬間有大量的資料庫連線與斷開操作,這是非常影響 mysql 效能的做法。此時,我們就需要使用mysql連線池。在 python 服務中使用 my...
mysql連線池的概念 連線池概念
1 連線池是乙個程序 多個連線是在乙個程序裡面儲存 管理的。這個程序儲存所有的連線,當我們開啟連線,如果有未用連線可用,則返回該連線。如果池中的連線都用完了,則建立乙個新的連線儲存到連線池。而但我們關閉連線的時候,連線池裡面並不關閉連線,而是返回連線池中並標記為可重用的狀態,等待重新連線直到等待超時...
資料連線池
現在常用的開源資料連線池主要有c3p0,dbcp和proxool三種,其中 hibernate開發組推薦使用c3p0 spring開發組推薦使用dbcp dbcp連線池有weblogic連線池同樣的問題,就是強行關閉連線或資料庫重啟後,無法reconnect 告訴連線被重置,這個設定可以解決 hib...