2016-11-14 4 views
0

ich zwei Möglichkeiten gesehen habe mit Datenbankverbindungen zu behandeln: 1) Anschluss Pool 2) Bind Verbindung mit einem Gewinde (wenn wir behoben haben und konstante Fäden zählen)Bind Datenbankverbindung zu einem Thread

Aber ich versteh nicht, was der Zweck der Verwendung von # 2 ist. Was ist die Vorteilhaftigkeit des zweiten Verhaltens gegenüber dem ersten?

Antwort

0

Wenn Sie mit einem einzelnen Thread oder einer sehr kleinen Gruppe von Threads arbeiten (die Datenbankfunktionalität benötigen), würde das Binden einer Verbindung an einen Thread wie der Verbindungspool eines armen Mannes funktionieren. Anstatt eine Verbindung aus dem Pool jedes Mal auszuprobieren, wenn Sie sie verwenden, verwenden Sie einfach die einzelne Verbindung, die an den Thread gebunden ist. Dies würde eine schnelle Ausführung von Datenbankabfragen ermöglichen, selbst mit Code, der nicht sehr gut entworfen wurde.

In vielen Fällen arbeiten Sie jedoch nicht mit einem einzelnen Thread oder einer kleinen Gruppe von Threads. Sobald Sie eine Anwendung mit Dutzenden gleichzeitiger Benutzer entwickeln, arbeiten Sie besser mit einem Verbindungspool, da es unmöglich wird, jedem Thread eine Verbindung zuzuweisen (siehe nächsten Abschnitt).

Einige Leute haben auch das Missverständnis, dass ein Verbindungspool viele Verbindungen (100 oder mehr) haben kann und sollte, auch wenn es oft vorteilhafter ist, weniger zu haben. Da alle Verbindungen die Ressourcen der Datenbank verwenden, ist der Effekt vergleichbar mit einem Geschäft mit einer einzigen Kasse. Es ist nicht effizienter, 10 Türen zum Geschäft zu haben als 1, da es nur mit Kunden gefüllt wird, aber die Zahlungen werden nicht schneller passieren.