python數(shù)據(jù)庫連接池中數(shù)據(jù)庫連接池技術(shù)的優(yōu)點(diǎn)簡介
如果你在開線程請求數(shù)據(jù)庫中如果你覺得所用時間太長的話,你就可以通過python數(shù)據(jù)庫連接池去改善一下在此方面的不足之處,以下是文章的具體介紹,你可以通過我們的文章對python數(shù)據(jù)庫連接池有一個更好的了解。
昨天測試了一下開500個線程去請求數(shù)據(jù)庫,不過這個時間不清楚會耗多少。即同時發(fā)起這么多的線程其效率會如何。于是想到是不是用數(shù)據(jù)庫連接池技術(shù)可以明顯改善一下這樣的連接操作呢。呆會整理完了之后要測試一個數(shù)據(jù):頻繁建立與關(guān)閉數(shù)據(jù)庫連接的效率與連接池之間的性能對比!
一、DBUtils模塊學(xué)習(xí)
DBUtils實(shí)際上是一個包含兩個子模塊的Python包,一個用于連接DB-API 2模塊,另一個用于連接典型的PyGreSQL模塊。全局的DB-API 2變量
- SteadyDB.py
用于穩(wěn)定數(shù)據(jù)庫連接
- PooledDB.py
連接池
- PersistentDB.py
維持持續(xù)的數(shù)據(jù)庫連接(持續(xù)性連接)
- SimplePooledDB.py
簡單連接池PS:先摘抄DB-API出來一下吧
- <!--[if !vml]--><!--[endif]-->
安裝為頂層模塊來的兩個模塊提供基本服務(wù), PersistentDB 和 PooledDB 。
DBUtils.PersistentDB 實(shí)現(xiàn)了強(qiáng)硬的、線程安全的、頑固的數(shù)據(jù)庫連接,使用DB-API 2模塊。如下圖展示了使用 PersistentDB 時的連接層步驟:DBUtils.PooledDB 實(shí)現(xiàn)了一個強(qiáng)硬的、線程安全的、有緩存的、可復(fù)用的數(shù)據(jù)庫連接,使用任何DB-API 2模塊。如下圖展示了使用 PooledDB 時的工作流程:
目前供我們選擇的有兩個模塊:PersistentDB 和 PooledDB 都是為了重用數(shù)據(jù)庫連接來提高性能,并保持?jǐn)?shù)據(jù)庫的穩(wěn)定性。
- python setup.py install
具體的模塊學(xué)習(xí):
DBUtils.SimplePooledDB 是一個非常簡單的數(shù)據(jù)庫連接池實(shí)現(xiàn)。他比完善的 PooledDB 模塊缺少很多功能。 DBUtils.SimplePooledDB 本質(zhì)上類似于 MiscUtils.DBPool 這個Webware的組成部分。你可以把它看作一種演示程序
DBUtils.SteadyDB 是一個模塊實(shí)現(xiàn)了"強(qiáng)硬"的數(shù)據(jù)庫連接,基于DB-API 2建立的原始連接。一個"強(qiáng)硬"的連接意味著在連接關(guān)閉之后,或者使用次數(shù)操作限制時會重新連接。一個典型的例子是數(shù)據(jù)庫重啟時,而你的程序仍然在運(yùn)行并需要訪問數(shù)據(jù)庫,或者當(dāng)你的程序連接了一個防火墻后面的遠(yuǎn)程數(shù)據(jù)庫,而防火墻重啟時丟失了狀態(tài)時。
一般來說你不需要直接使用 SteadyDB 它只是給接下
【編輯推薦】