如果你在開執行緒請求資料庫中如果你覺得所用時間太長的話,你就可以透過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 它只是給接下