引言
pymysqlpool (本地下載)是數據庫工具包中新成員,目的是能提供一個實用的數據庫連接池中間件,從而避免在應用中頻繁地創建和釋放數據庫連接資源。

功能
python/203713.html">python/266925.html">pymysql.Connection);基本工作流程
注意,當多線程同時請求時,若池中沒有可用的連接對象,則需要排隊等待
|--------| |--------------|| | <==borrow connection object== | Pool manager || Client | | || | ==return connection object==> | FIFO queue ||--------| |--------------|
參數配置
pymysql.Connection使用示例
1、使用 cursor 上下文管理器(快捷方式,但每次獲取都會申請連接對象,多次調用效率不高):
from pymysqlpool import ConnectionPoolconfig = { 'pool_name': 'test', 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'root', 'database': 'test'}def connection_pool(): # Return a connection pool instance pool = ConnectionPool(**config) pool.connect() return pool# 直接訪問并獲取一個 cursor 對象,自動 commit 模式會在這種方式下啟用with connection_pool().cursor() as cursor: print('Truncate table user') cursor.execute('TRUNCATE user') print('Insert one record') result = cursor.execute('INSERT INTO user (name, age) VALUES (%s, %s)', ('Jerry', 20)) print(result, cursor.lastrowid) print('Insert multiple records') users = [(name, age) for name in ['Jacky', 'Mary', 'Micheal'] for age in range(10, 15)] result = cursor.executemany('INSERT INTO user (name, age) VALUES (%s, %s)', users) print(result) print('View items in table user') cursor.execute('SELECT * FROM user') for user in cursor: print(user) print('Update the name of one user in the table') cursor.execute('UPDATE user SET name="Chris", age=29 WHERE id = 16') cursor.execute('SELECT * FROM user ORDER BY id DESC LIMIT 1') print(cursor.fetchone()) print('Delete the last record') cursor.execute('DELETE FROM user WHERE id = 16')2、使用 connection 上下文管理器:
import pandas as pdfrom pymysqlpool import ConnectionPoolconfig = { 'pool_name': 'test', 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'root', 'database': 'test'}def connection_pool(): # Return a connection pool instance pool = ConnectionPool(**config) pool.connect() return poolwith connection_pool().connection() as conn: pd.read_sql('SELECT * FROM user', conn)# 或者connection = connection_pool().borrow_connection()pd.read_sql('SELECT * FROM user', conn)connection_pool().return_connection(connection)更多測試請移步 test_example.py。
依賴
安裝
輕移步 pymysqlpool: https://github.com/ChrisLeeGit/pymysqlpool 下載源碼(也可以通過本地下載),然后使用 pip 安裝即可:pip3 setup.py install,注意需要使用 Python3 環境。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答