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