python數據庫連接池技術總結

ybw8 9年前發布 | 23K 次閱讀 Python開發 Python

如果你在開線程請求數據庫中如果你覺得所用時間太長的話,你就可以通過python數據庫連接池去改善一下在此方面的不足之處,以下是文章的具體介紹,你可以通過我們的文章對python數據庫連接池有一個更好的了解。

昨天測試了一下開500個線程去請求數據庫,不過這個時間不清楚會耗多少。即同時發起這么多的線程其效率會如何。于是想到是不是用數據庫連接池技術可以明顯改善一下這樣的連接操作呢。呆會整理完了之后要測試一個數據:頻繁建立與關閉數據庫連接的效率與連接池之間的性能對比!

一、DBUtils模塊學習

DBUtils實際上是一個包含兩個子模塊的Python包,一個用于連接DB-API 2模塊,另一個用于連接典型的PyGreSQL模塊。全局的DB-API 2變量

SteadyDB.py

用于穩定數據庫連接

PooledDB.py

連接池

PersistentDB.py

維持持續的數據庫連接(持續性連接)

SimplePooledDB.py

簡單連接池PS:先摘抄DB-API出來一下吧

<!--[if !vml]--><!--[endif]-->

安裝為頂層模塊來的兩個模塊提供基本服務, PersistentDB 和 PooledDB 。

DBUtils.PersistentDB 實現了強硬的、線程安全的、頑固的數據庫連接,使用DB-API 2模塊。如下圖展示了使用 PersistentDB 時的連接層步驟:DBUtils.PooledDB 實現了一個強硬的、線程安全的、有緩存的、可復用的數據庫連接,使用任何DB-API 2模塊。如下圖展示了使用 PooledDB 時的工作流程:

目前供我們選擇的有兩個模塊:PersistentDB 和 PooledDB 都是為了重用數據庫連接來提高性能,并保持數據庫的穩定性。

python setup.py install

具體的模塊學習:

DBUtils.SimplePooledDB 是一個非常簡單的數據庫連接池實現。他比完善的 PooledDB 模塊缺少很多功能。 DBUtils.SimplePooledDB 本質上類似于 MiscUtils.DBPool 這個Webware的組成部分。你可以把它看作一種演示程序

DBUtils.SteadyDB 是一個模塊實現了"強硬"的數據庫連接,基于DB-API 2建立的原始連接。一個"強硬"的連接意味著在連接關閉之后,或者使用次數操作限制時會重新連接。一個典型的例子是數據庫重啟時,而你的程序仍然在運行并需要訪問數據庫,或者當你的程序連接了一個防火墻后面的遠程數據庫,而防火墻重啟時丟失了狀態時。

一般來說你不需要直接使用 SteadyDB 它只是給接下


 本文由用戶 ybw8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!