bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

怎么創建python數據庫連接池-創新互聯

這篇文章主要介紹“怎么創建python數據庫連接池”,在日常操作中,相信很多人在怎么創建python數據庫連接池問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么創建python數據庫連接池”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

為東山等地區用戶提供了全套網頁設計制作服務,及東山網站建設行業解決方案。主營業務為網站設計、成都網站設計、東山網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

1、不使用數據庫連接池,每次操作都要鏈接數據庫,鏈接次數過多

 conn = pymysql.connect(host="127.0.0.1",port=3306,user='root',password='123', database='pooldb',charset='utf8')
    cursor = conn.cursor()
    cursor.execute("select * from td where id=%s", [5, ])
    result = cursor.fetchall()  # 獲取數據    cursor.close()
    conn.close()  # 關閉鏈接

這種方式每次請求,反復創建數據庫鏈接,多次鏈接數據庫會非常耗時

2、創建一個鏈接池,為所有線程提供連接,使用時來進行獲取,使用完畢后在放回到連接池。

PS:假設大鏈接數有10個,其實也就是一個列表,當你pop一個,系統會再append一個,鏈接池的所有的鏈接都是按照排隊的這樣的方式來鏈接的。鏈接池里所有的鏈接都能重復使用,共享的, 即實現了并發,又防止了鏈接次數太多

import timeimport pymysqlimport threadingfrom DBUtils.PooledDB import PooledDB, SharedDBConnection
POOL = PooledDB(
    creator=pymysql,  # 使用鏈接數據庫的模塊
    maxconnections=6,  # 連接池允許的大連接數,0和None表示不限制連接數
    mincached=2,  # 初始化時,鏈接池中至少創建的空閑的鏈接,0表示不創建
    maxcached=5,  # 鏈接池中最多閑置的鏈接,0和None不限制
    maxshared=3,  # 鏈接池中最多共享的鏈接數量,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='123',
    database='pooldb',
    charset='utf8')def func():    # 檢測當前正在運行連接數的是否小于大鏈接數,如果不小于則:等待或報raise TooManyConnections異常
    # 否則
    # 則優先去初始化時創建的鏈接中獲取鏈接 SteadyDBConnection。
    # 然后將SteadyDBConnection對象封裝到PooledDedicatedDBConnection中并返回。
    # 如果最開始創建的鏈接沒有鏈接,則去創建一個SteadyDBConnection對象,再封裝到PooledDedicatedDBConnection中并返回。
    # 一旦關閉鏈接后,連接就返回到連接池讓后續線程繼續使用。
    # PooledDedicatedDBConnection
    conn = POOL.connection()    # print(th, '鏈接被拿走了', conn1._con)
    # print(th, '池子里目前有', pool._idle_cache, '\r\n')
    cursor = conn.cursor()
    cursor.execute('select * from tb1')
    result = cursor.fetchall()
    conn.close()

到此,關于“怎么創建python數據庫連接池”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯-成都網站建設公司網站,小編會繼續努力為大家帶來更多實用的文章!

當前題目:怎么創建python數據庫連接池-創新互聯
網址分享:http://vcdvsql.cn/article22/pgpjc.html

成都網站建設公司_創新互聯,為您提供網頁設計公司Google、做網站、網站導航、定制網站自適應網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營