七 mysql連線池

2021-08-07 14:43:10 字數 1685 閱讀 4145

資料儲存到資料庫中,當然少不了獲取連線及執行sql

使用連線池,獲取連線

@classmethod

defgetconnection

(cls):

''' @return: 返回乙個資料庫連線的例項

'''logger = logging.getlogger('mylogger.myutil.myutil')

try:

if myutil.cnxpool is

none:

user = myutil.loadproperty('mysql', 'user')

passwd = myutil.loadproperty('mysql', 'password')

host = myutil.loadproperty('mysql', 'host')

db = myutil.loadproperty('mysql', 'database')

dbconfig =

myutil.cnxpool = mysql.connector.pooling.mysqlconnectionpool(pool_name="mypool", pool_size=10, **dbconfig)

except mysql.connector.error as err:

myutil.cnxpool = none

if err.errno == errorcode.er_access_denied_error:

logger.info("使用者名稱或密碼不對")

elif err.errno == errorcode.er_bad_db_error:

logger.info("資料庫不存在")

else:

logger.debug(err)

raise exception('can\'t connect to mysql server')

return myutil.cnxpool.get_connection()

執行sql

def

store2db

(self, sql, values):

''' 儲存需求到表中

@param sql: 需要執行的sql

@param values: 元組型別,欄位的值

@return: 執行結果, true or false

'''# get connection

cnx = myutil.getconnection()

# get cursor

cursor = cnx.cursor()

try:

# execute sql

cursor.execute(sql, values)

res = true

self.logger.info('add view success')

except exception, e:

self.logger.debug(e)

res = false

else:

# commit

cnx.commit()

# close resources

cursor.close()

myutil.closeconn(cnx)

return res

mysql連線池 順序 Mysql 連線池

通常,如果我們的服務涉及到mysql的操作,當乙個新的請求進來的時候,可以先連線mysql,使用完之後再斷開連線即可。但這樣做有個弊端,當請求量巨大時,會在瞬間有大量的資料庫連線與斷開操作,這是非常影響 mysql 效能的做法。此時,我們就需要使用mysql連線池。在 python 服務中使用 my...

mysql連線池的概念 連線池概念

1 連線池是乙個程序 多個連線是在乙個程序裡面儲存 管理的。這個程序儲存所有的連線,當我們開啟連線,如果有未用連線可用,則返回該連線。如果池中的連線都用完了,則建立乙個新的連線儲存到連線池。而但我們關閉連線的時候,連線池裡面並不關閉連線,而是返回連線池中並標記為可重用的狀態,等待重新連線直到等待超時...

mysql資料連線池

示例 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...