Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung der Python-Datenbankverbindungspooltechnologie

Zusammenfassung der Python-Datenbankverbindungspooltechnologie

高洛峰
高洛峰Original
2016-10-18 11:11:552513Durchsuche

Wenn Sie der Meinung sind, dass das Anfordern der Datenbank in einem Thread zu lange dauert, können Sie die Mängel in diesem Aspekt mithilfe des Python-Datenbankverbindungspools beheben Der Artikel bietet ein besseres Verständnis des Python-Datenbankverbindungspoolings.

Gestern habe ich getestet, 500 Threads zu öffnen, um die Datenbank anzufordern, aber ich weiß nicht, wie lange es dauern wird. Das heißt, wie effizient ist es, so viele Threads gleichzeitig zu starten? Deshalb habe ich darüber nachgedacht, ob der Einsatz der Datenbankverbindungspooltechnologie solche Verbindungsvorgänge erheblich verbessern kann. Nachdem ich es eine Weile geklärt habe, werde ich ein Datenelement testen: den Leistungsvergleich zwischen der Effizienz des häufigen Herstellens und Schließens von Datenbankverbindungen und dem Verbindungspool!

1. Erlernen des DBUtils-Moduls

DBUtils ist eigentlich ein Python-Paket, das zwei Untermodule enthält, eines für die Verbindung mit dem DB-API 2-Modul und das andere für die Verbindung mit dem typischen PyGreSQL-Modul . Globale DB-API 2-Variablen

SteadyDB.py

werden zur Stabilisierung der Datenbankverbindung verwendet

PooledDB.py

Verbindungspool

PersistentDB.py

Behalten Sie eine dauerhafte Datenbankverbindung bei (persistente Verbindung)

SimplePooledDB.py

Einfacher Verbindungspool PS: Extrahieren wir zuerst die DB-API

Die Installation stellt grundlegende Dienste für zwei Module des Top-Level-Moduls bereit: PersistentDB und PooledDB.

DBUtils.PersistentDB implementiert mithilfe des DB-API 2-Moduls robuste, threadsichere und dauerhafte Datenbankverbindungen. Die folgende Abbildung zeigt die Schritte der Verbindungsschicht bei Verwendung von PersistentDB: DBUtils.PooledDB implementiert eine robuste, threadsichere, zwischengespeicherte und wiederverwendbare Datenbankverbindung unter Verwendung eines beliebigen DB-API 2-Moduls. Die folgende Abbildung zeigt den Arbeitsablauf bei der Verwendung von PooledDB:

Derzeit stehen uns zwei Module zur Auswahl: PersistentDB und PooledDB, die beide darauf ausgelegt sind, Datenbankverbindungen wiederzuverwenden, um die Leistung zu verbessern und die Datenbankstabilität aufrechtzuerhalten.

python setup.py install

Spezifisches Modullernen:

DBUtils.SimplePooledDB ist eine sehr einfache Implementierung eines Datenbankverbindungspools. Es fehlen viele Funktionen als das vollwertige PooledDB-Modul. DBUtils.SimplePooledDB ähnelt im Wesentlichen MiscUtils.DBPool, einer Komponente von Webware. Sie können es sich als Demoprogramm vorstellen

DBUtils.SteadyDB ist ein Modul, das „starke“ Datenbankverbindungen implementiert, basierend auf den ursprünglichen Verbindungen, die von DB-API 2 hergestellt wurden. Eine „harte“ Verbindung bedeutet, dass die Verbindung wiederhergestellt wird, nachdem die Verbindung geschlossen wurde oder wenn die maximale Anzahl an Vorgängen erreicht ist. Ein typisches Beispiel ist, wenn die Datenbank neu gestartet wird, während Ihr Programm noch läuft und auf die Datenbank zugreifen muss, oder wenn Ihr Programm eine Verbindung zu einer Remote-Datenbank hinter einer Firewall herstellt und der Status beim Neustart der Firewall verloren geht.

Im Allgemeinen müssen Sie SteadyDB nicht direkt verwenden, es übernimmt einfach


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn