Python數(shù)據(jù)庫連接池中兩個模塊的具體應(yīng)用
如果你對Python數(shù)據(jù)庫連接池有相關(guān)的實際操作步驟的了解,那你是否了解Python數(shù)據(jù)庫連接池供我們選擇的有兩個模塊的具體實際應(yīng)用方案的相關(guān)步驟呢?如故你想在此方面有所收獲的話,你就可以點(diǎn)擊以下的文章。
Python數(shù)據(jù)庫連接池目前供我們選擇的有兩個模塊:
PersistentDB 和 PooledDB 都是為了重用數(shù)據(jù)庫連接來提高性能,并保持?jǐn)?shù)據(jù)庫的穩(wěn)定性。
所以選擇何種模塊,可以參考上面的解釋。 PersistentDB 將會保持一定數(shù)量的連接供頻繁使用。在這種情況下你總是保持固定數(shù)量的連接。如果你的程序頻繁的啟動和關(guān)閉線程,***使用 PooledDB 。后面將會提到更好的調(diào)整,尤其在使用線程安全的DB-API 2模塊時。
當(dāng)然,這兩個模塊的接口是很相似的,你可以方便的在他們之間轉(zhuǎn)換,并查看哪個更好一些。為了使用 PersistentDB 你首先需要通過創(chuàng)建 PersistentDB 的實例來設(shè)置一個特定數(shù)據(jù)庫連接的生成器,床底如下參數(shù):
creator: 可以使用任意返回 DB-API 2 連接對象的函數(shù)活 DB-API 2 兼容的數(shù)據(jù)庫模塊。maxusage: 一個連接***允許復(fù)用次數(shù)(缺省為 0 或 False 意味著無限制的重用),當(dāng)達(dá)到限制時,將會重新連接數(shù)據(jù)庫setsession: 一個可選的SQL命令列表可以用于準(zhǔn)備會話,如
- ["set datestyle to german", ...]
creator 函數(shù)或生成 DB-API 2 連接的函數(shù),可以接受這里的附加參數(shù),比如主機(jī)名、數(shù)據(jù)庫、用戶名、密碼等等。你也可以選擇傳遞給 creator 的其他參數(shù),并允許提供失敗重連和負(fù)載均衡。
為了使用 PooledDB 模塊,你首先需要通過創(chuàng)建 PooledDB 來設(shè)置Python數(shù)據(jù)庫連接池,傳遞如下參數(shù):
creator: 可以生成 DB-API 2 連接的任何函數(shù)或 DB-API 2 兼容的數(shù)據(jù)庫連接模塊。mincached : 啟動時開啟的空連接數(shù)量(缺省值 0 意味著開始時不創(chuàng)建連接)maxcached: 連接池使用的最多連接數(shù)量(缺省值 0 代表不限制連接池大小)maxshared: ***允許的共享連接數(shù)量(缺省值 0 代表所有連接都是專用的)如果達(dá)到了***數(shù)量,被請求為共享的連接將會被共享使用。
maxconnections: ***允許連接數(shù)量(缺省值 0 代表不限制)blocking: 設(shè)置在達(dá)到***數(shù)量時的行為(缺省值 0 或 False 代表返回一個錯誤;其他代表阻塞直到連接數(shù)減少)
maxusage: 單個連接的***允許復(fù)用次數(shù)(缺省值 0 或 False 代表不限制的復(fù)用)。當(dāng)達(dá)到***數(shù)值時,連接會自動重新連接(關(guān)閉和重新打開)
setsession: 一個可選的SQL命令列表用于準(zhǔn)備每個會話,如
- ["set datestyle to german", ...]
creator 函數(shù)或可以生成連接的函數(shù)可以接受這里傳入的其他參數(shù),例如主機(jī)名、數(shù)據(jù)庫、用戶名、密碼等。你還可以選擇傳入creator函數(shù)的其他參數(shù),允許失敗重連和負(fù)載均衡。
以上文章就是對Python數(shù)據(jù)庫連接池供我們選擇的有兩個模塊的實際應(yīng)用的部分介紹。
【編輯推薦】