最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 使用 PyMysql、DBUtils 創(chuàng)建連接池提升性能

 更新時間:2019年08月14日 11:16:42   作者:feiquan  
DBUtils 是一套 Python 數(shù)據(jù)庫連接池包,并允許對非線程安全的數(shù)據(jù)庫接口進行線程安全包裝。這篇文章主要介紹了Python 使用 PyMysql、DBUtils 創(chuàng)建連接池,提升性能,需要的朋友可以參考下

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

解決方案:DBUtils

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

原理:


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

例子

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為連接池里的最少連接數(shù),setsession=['SET AUTOCOMMIT = 1']是用來設(shè)置線程池是否打開自動更新的配置,0為False,1為True
conn = pool.connection() #以后每次需要數(shù)據(jù)庫連接就是用connection()函數(shù)獲取連接就好了
cur=conn.cursor()
SQL="select * from table"
count=cur.execute(SQL)
results=cur.fetchall()
cur.close()
conn.close()

PooledDB 的參數(shù):

POOL = PooledDB(
creator=pymysql, # 使用鏈接數(shù)據(jù)庫的模塊
maxconnections=6, # 連接池允許的最大連接數(shù),0和None表示不限制連接數(shù)
mincached=2, # 初始化時,鏈接池中至少創(chuàng)建的空閑的鏈接,0表示不創(chuàng)建
maxcached=5, # 鏈接池中最多閑置的鏈接,0和None不限制
maxshared=1, # 鏈接池中最多共享的鏈接數(shù)量,0和None表示全部共享。PS: 無用,因為pymysql和MySQLdb等模塊的 threadsafety都為1,所有值無論設(shè)置為多少,_maxcached永遠為0,所以永遠是所有鏈接都共享。
blocking=True, # 連接池中如果沒有可用連接后,是否阻塞等待。True,等待;False,不等待然后報錯
maxusage=None, # 一個鏈接最多被重復使用的次數(shù),None表示無限制
setsession=[], # 開始會話前執(zhí)行的命令列表。如:[“set datestyle to …”, “set time zone …”]
ping=0,
# ping MySQL服務(wù)端,檢查是否服務(wù)可用。
# 如: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 請求都會分發(fā)給一個進程,連接池中配置的連接數(shù)都是一個進程為單位的(即上面的最大連接數(shù),都是在一個進程中的連接數(shù)),而如果業(yè)務(wù)中,一個 http 請求中需要的 sql 連接數(shù)不是很多的話(其實大多數(shù)都只需要創(chuàng)建一個連接),配置的連接數(shù)配置都不需要太大。

連接池對性能的提升表現(xiàn)在:

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

總結(jié)

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

相關(guān)文章

  • Django admin美化插件suit使用示例

    Django admin美化插件suit使用示例

    這篇文章主要介紹了Django admin美化插件suit使用示例,簡單介紹了suit的使用界面示例,官方文檔,安裝語句等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • python re正則表達式模塊(Regular Expression)

    python re正則表達式模塊(Regular Expression)

    Python 的 re 模塊(Regular Expression 正則表達式)提供各種正則表達式的匹配操作,在文本解析、復雜字符串分析和信息提取時是一個非常有用的工具.
    2014-07-07
  • 利用python清除移動硬盤中的臨時文件

    利用python清除移動硬盤中的臨時文件

    本篇文章的目的是在移動硬盤插入到電腦的同時,利用Python自動化和Windows服務(wù)刪除掉這些臨時文件。感興趣的朋友可以了解下
    2020-10-10
  • Python中元組的基礎(chǔ)介紹及常用操作總結(jié)

    Python中元組的基礎(chǔ)介紹及常用操作總結(jié)

    元組是一種不可變序列。元組變量的賦值要在定義時就進行,這就像C語言中的const變量或是C++的引用,定義時賦值之后就不允許有修改。元組存在的意義是:元組在映射中可以作為鍵使用,因為要保證鍵的不變性。元組作為很多內(nèi)置函數(shù)和方法的返回值存在
    2021-09-09
  • python中的句柄操作的方法示例

    python中的句柄操作的方法示例

    這篇文章主要介紹了python中的句柄操作的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • python列表刪除和多重循環(huán)退出原理詳解

    python列表刪除和多重循環(huán)退出原理詳解

    這篇文章主要介紹了python列表刪除和多重循環(huán)退出原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • python PyGame五子棋小游戲

    python PyGame五子棋小游戲

    大家好,本篇文章主要講的是python PyGame五子棋小游戲,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 基于python實現(xiàn)刪除指定文件類型

    基于python實現(xiàn)刪除指定文件類型

    這篇文章主要介紹了基于python實現(xiàn)刪除指定文件類型,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Python量化交易詳細簡介

    Python量化交易詳細簡介

    這篇文章主要介紹了Python量化交易詳細,??算法交易是使用自動化系統(tǒng)來執(zhí)行交易,這些交易是通過特定的算法以預(yù)測的方式執(zhí)行的沒有任何人為干預(yù)。依據(jù)數(shù)學模型對大數(shù)據(jù)進行概率分析,使得長期收益期望最大化,下文詳細敘述,需要的朋友可以參考一下
    2022-03-03
  • Django 后臺帶有字典的列表數(shù)據(jù)與頁面js交互實例

    Django 后臺帶有字典的列表數(shù)據(jù)與頁面js交互實例

    這篇文章主要介紹了Django 后臺帶有字典的列表數(shù)據(jù)與頁面js交互實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論

邢台市| 溧阳市| 高州市| 喀什市| 宜昌市| 婺源县| 建阳市| 寿阳县| 册亨县| 禹城市| 凤阳县| 肃南| 甘肃省| 天柱县| 双辽市| 江门市| 苍南县| 乌拉特中旗| 黔西县| 通山县| 丁青县| 舒城县| 栖霞市| 化隆| 辉南县| 沁阳市| 高淳县| 闻喜县| 灵石县| 固镇县| 东至县| 广丰县| 分宜县| 渑池县| 汤阴县| 余姚市| 霍州市| 桐城市| 丹东市| 上思县| 黑水县|