亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python 使用 PyMysql、DBUtils 創建連接池提升性能

系統 2483 0

Python 編程中可以使用 PyMysql 進行數據庫的連接及諸如查詢/插入/更新等操作,但是每次連接 MySQL 數據庫請求時,都是獨立的去請求訪問,相當浪費資源,而且訪問數量達到一定數量時,對 mysql 的性能會產生較大的影響。因此,實際使用中,通常會使用數據庫的連接池技術,來訪問數據庫達到資源復用的目的。

解決方案:DBUtils

DBUtils 是一套 Python 數據庫連接池包,并允許對非線程安全的數據庫接口進行線程安全包裝。DBUtils 來自 Webware for Python 。

原理:

Python 使用 PyMysql、DBUtils 創建連接池提升性能_第1張圖片

  • 在程序創建連接的時候,可以從一個空閑的連接中獲取,不需要重新初始化連接,提升獲取連接的速度
  • 關閉連接的時候,把連接放回連接池,而不是真正的關閉,所以可以減少頻繁地打開和關閉連接

例子

            
import pymysql
from DBUtils.PooledDB import PooledDB
pool = PooledDB(pymysql,5,host='ip',user='user',passwd='passwd',db='db',port=3306,setsession=['SET AUTOCOMMIT = 1']) # 5為連接池里的最少連接數,setsession=['SET AUTOCOMMIT = 1']是用來設置線程池是否打開自動更新的配置,0為False,1為True
conn = pool.connection() #以后每次需要數據庫連接就是用connection()函數獲取連接就好了
cur=conn.cursor()
SQL="select * from table"
count=cur.execute(SQL)
results=cur.fetchall()
cur.close()
conn.close()
          

PooledDB 的參數:

            
POOL = PooledDB(
creator=pymysql, # 使用鏈接數據庫的模塊
maxconnections=6, # 連接池允許的最大連接數,0和None表示不限制連接數
mincached=2, # 初始化時,鏈接池中至少創建的空閑的鏈接,0表示不創建
maxcached=5, # 鏈接池中最多閑置的鏈接,0和None不限制
maxshared=1, # 鏈接池中最多共享的鏈接數量,0和None表示全部共享。PS: 無用,因為pymysql和MySQLdb等模塊的 threadsafety都為1,所有值無論設置為多少,_maxcached永遠為0,所以永遠是所有鏈接都共享。
blocking=True, # 連接池中如果沒有可用連接后,是否阻塞等待。True,等待;False,不等待然后報錯
maxusage=None, # 一個鏈接最多被重復使用的次數,None表示無限制
setsession=[], # 開始會話前執行的命令列表。如:[“set datestyle to …”, “set time zone …”]
ping=0,
# ping MySQL服務端,檢查是否服務可用。
# 如:0 = None = never,
# 1 = default = whenever it is requested,
# 2 = when a cursor is created,
# 4 = when a query is executed,
# 7 = always
host=‘127.0.0.1',
port=3306,
user=‘root',
password='',
database=‘ziji',
charset=‘utf8'
)
          

在 uwsgi 中,每個 http 請求都會分發給一個進程,連接池中配置的連接數都是一個進程為單位的(即上面的最大連接數,都是在一個進程中的連接數),而如果業務中,一個 http 請求中需要的 sql 連接數不是很多的話(其實大多數都只需要創建一個連接),配置的連接數配置都不需要太大。

連接池對性能的提升表現在:

在程序創建連接的時候,可以從一個空閑的連接中獲取,不需要重新初始化連接,提升獲取連接的速度關閉連接的時候,把連接放回連接池,而不是真正的關閉,所以可以減少頻繁地打開和關閉連接

總結

以上所述是小編給大家介紹的Python 使用 PyMysql、DBUtils 創建連接池提升性能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产高清国内精品福利色噜噜 | 国产国拍亚洲精品福利 | 国产黄网永久免费 | 曰本亚洲欧洲色a在线 | 福利色姬网站视频入口 | 99热久久精品首页 | 国产亚洲精品激情都市 | 奇米影视奇米色777欧美 | 欧美.成人.综合在线 | 一级黄视频 | 亚洲高清视频在线观看 | 91青娱乐在线 | 国产在线中文字幕 | 一区二区三区国产 | 377p亚洲欧洲日本大胆色噜噜 | 亚洲在线免费 | 9久re在线观看视频精品 | 中文字幕久精品免费视频 | 日韩欧美一区二区三区四区 | 奇米第四狠狠777高清秒播 | 99热久久只有精品99只有精品 | 一级毛片在线视频 | 午夜免费体验区 | 羞羞视频在线免费 | 国产在线19禁免费观看 | 成人深夜网站 | 男女免费在线视频 | 精品久久久久久久久免费影院 | 久久99国产一区二区三区 | 国产一级毛片外aaaa | 嫩模在线 | 四虎视频国产精品免费 | 国产人成精品免费视频 | 欧美日韩亚洲精品一区二区 | 亚洲日韩在线视频 | 狠狠澡夜夜澡人人爽 | 日韩亚洲成a人片在线观看 日韩亚洲第一页 | 天天操夜夜操美女 | 亚洲国产成人精彩精品 | 成年女人免费视频播放77777 | 国产大尺度福利视频在线观看 |