python 使用mysql連接池

環(huán)境python2.7

1.DBUtils.PooledDB 介紹

DBUtils 是一套用于管理數(shù)據(jù)庫(kù)連接池的包,為高頻度高并發(fā)的數(shù)據(jù)庫(kù)訪問(wèn)提供更好的性能,可以自動(dòng)管理連接對(duì)象的創(chuàng)建和釋放芽死。最常用的兩個(gè)外部接口是 PersistentDB 和 PooledDB约谈,前者提供了單個(gè)線程專用的數(shù)據(jù)庫(kù)連接池岛都,后者則是進(jìn)程內(nèi)所有線程共享的數(shù)據(jù)庫(kù)連接池护锤。

DBUtils是一套Python數(shù)據(jù)庫(kù)連接池包,并允許對(duì)非線程安全的數(shù)據(jù)庫(kù)接口進(jìn)行線程安全包裝怒详。DBUtils來(lái)自Webware for Python炉媒。

DBUtils提供兩種外部接口:

  • PersistentDB :提供線程專用的數(shù)據(jù)庫(kù)連接,并自動(dòng)管理連接昆烁。
  • PooledDB :提供線程間可共享的數(shù)據(jù)庫(kù)連接吊骤,并自動(dòng)管理連接。

實(shí)測(cè)證明 PersistentDB 的速度是最高的静尼,但是在某些特殊情況下白粉,數(shù)據(jù)庫(kù)的連接過(guò)程可能異常緩慢,而此時(shí)的PooledDB則可以提供相對(duì)來(lái)說(shuō)平均連接時(shí)間比較短的管理方式鼠渺。

另外鸭巴,實(shí)際使用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)也有所依賴,比如SQLite數(shù)據(jù)庫(kù)只能使用PersistentDB作連接池拦盹。 下載地址:(http://www.webwareforpython.org/downloads/DBUtils/)

2.安裝 DBUtils

pip install DBUtils

3.使用案例

import MySQLdb
from DBUtils.PooledDB import PooledDB
pool = PooledDB(MySQLdb,5,host='localhost',user='root',passwd='pwd',db='myDB',port=3306) #5為連接池里的最少連接數(shù)
conn = pool.connection()  #以后每次需要數(shù)據(jù)庫(kù)連接就是用connection()函數(shù)獲取連接就好了
cur=conn.cursor()
SQL="select * from table1"
r=cur.execute(SQL)
r=cur.fetchall()
cur.close()
conn.close()

PooledDB的參數(shù):

  1. mincached鹃祖,最少的空閑連接數(shù),如果空閑連接數(shù)小于這個(gè)數(shù)普舆,pool會(huì)創(chuàng)建一個(gè)新的連接
  2. maxcached恬口,最大的空閑連接數(shù),如果空閑連接數(shù)大于這個(gè)數(shù)沼侣,pool會(huì)關(guān)閉空閑連接
  3. maxconnections祖能,最大的連接數(shù),
  4. blocking蛾洛,當(dāng)連接數(shù)達(dá)到最大的連接數(shù)時(shí)养铸,在請(qǐng)求連接的時(shí)候,如果這個(gè)值是True轧膘,請(qǐng)求連接的程序會(huì)一直等待钞螟,直到當(dāng)前連接數(shù)小于最大連接數(shù),如果這個(gè)值是False扶供,會(huì)報(bào)錯(cuò)筛圆,
  5. maxshared 當(dāng)連接數(shù)達(dá)到這個(gè)數(shù),新請(qǐng)求的連接會(huì)分享已經(jīng)分配出去的連接
    在uwsgi中椿浓,每個(gè)http請(qǐng)求都會(huì)分發(fā)給一個(gè)進(jìn)程太援,連接池中配置的連接數(shù)都是一個(gè)進(jìn)程為單位的(即上面的最大連接數(shù),都是在一個(gè)進(jìn)程中的連接數(shù))扳碍,而如果業(yè)務(wù)中提岔,一個(gè)http請(qǐng)求中需要的sql連接數(shù)不是很多的話(其實(shí)大多數(shù)都只需要?jiǎng)?chuàng)建一個(gè)連接),配置的連接數(shù)配置都不需要太大笋敞。

連接池對(duì)性能的提升表現(xiàn)在:
1.在程序創(chuàng)建連接的時(shí)候碱蒙,可以從一個(gè)空閑的連接中獲取,不需要重新初始化連接夯巷,提升獲取連接的速度
2.關(guān)閉連接的時(shí)候赛惩,把連接放回連接池,而不是真正的關(guān)閉趁餐,所以可以減少頻繁地打開和關(guān)閉連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喷兼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子后雷,更是在濱河造成了極大的恐慌季惯,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臀突,死亡現(xiàn)場(chǎng)離奇詭異勉抓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)候学,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門藕筋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人梳码,你說(shuō)我怎么就攤上這事隐圾。” “怎么了边翁?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵翎承,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我符匾,道長(zhǎng)叨咖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任啊胶,我火速辦了婚禮甸各,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焰坪。我一直安慰自己趣倾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布某饰。 她就那樣靜靜地躺著儒恋,像睡著了一般善绎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诫尽,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天禀酱,我揣著相機(jī)與錄音,去河邊找鬼牧嫉。 笑死剂跟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酣藻。 我是一名探鬼主播曹洽,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼辽剧!你這毒婦竟也來(lái)了送淆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抖仅,失蹤者是張志新(化名)和其女友劉穎坊夫,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撤卢,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡环凿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了放吩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片智听。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖渡紫,靈堂內(nèi)的尸體忽然破棺而出到推,到底是詐尸還是另有隱情,我是刑警寧澤惕澎,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布莉测,位于F島的核電站,受9級(jí)特大地震影響唧喉,放射性物質(zhì)發(fā)生泄漏捣卤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一八孝、第九天 我趴在偏房一處隱蔽的房頂上張望董朝。 院中可真熱鬧,春花似錦干跛、人聲如沸子姜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哥捕。三九已至牧抽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扭弧,已是汗流浹背阎姥。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工记舆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸽捻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓泽腮,卻偏偏與公主長(zhǎng)得像御蒲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子诊赊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說(shuō)明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)厚满,會(huì)觸發(fā)此異常。 O...
    我想起個(gè)好名字閱讀 5,333評(píng)論 0 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,109評(píng)論 1 32
  • 操作系統(tǒng)概論 操作系統(tǒng)的概念 操作系統(tǒng)是指控制和管理計(jì)算機(jī)的軟硬件資源碧磅,并合理的組織調(diào)度計(jì)算機(jī)的工作和資源的分配碘箍,...
    野狗子嗷嗷嗷閱讀 11,949評(píng)論 3 34
  • 秋葉黃了,秋風(fēng)涼了 秋日的天空也空了 天高云淡著 只鳥孤叫著 遠(yuǎn)方一個(gè)你有意無(wú)意的讓我惦念著 此地一個(gè)我鲸郊,百無(wú)聊賴...
    落雪與塵埃閱讀 456評(píng)論 0 7
  • 作者:Erica Sadun丰榴,原文鏈接,原文日期:2016-05-11譯者:pucca秆撮;校對(duì):wiilen四濒;定稿:...
    梁杰_numbbbbb閱讀 353評(píng)論 1 0