mysql資料連線池

2021-08-11 02:53:02 字數 1292 閱讀 3084

示例:

#!/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...