Dies ist eine Diskussion, die ich selbst und einige meiner Kollegen führen, und ich denke, ich komme hierher, um zu sehen, was passiert, wenn ein allgemeiner Konsens darüber besteht.
Grundsätzlich ergeben sich die folgenden 2 Meinungen zu Datenbankaufrufen: 1. Führen Sie einen großen Aufruf durch, um alles zu erhalten, was zur Reduzierung der Anzahl der Datenbankaufrufe erforderlich ist. 2. Führen Sie kleinere separate Aufrufe aus, je nachdem, was zur Reduzierung der Größe erforderlich ist DB ruft auf
Wo dies besonders ins Spiel kommt, ist allgemeiner Code. Wir werden das Beispiel einer Employee-Klasse verwenden, da dies ziemlich einfach ist.
Angenommen, Ihre Employee-Klasse verfügt über 10 Werteattribute (Vorname, Nachname, Angestellter usw.) und dann über 2 Klassenattribute. 1 verweist auf eine Department-Klasse und 1 Supervisor, der auf ein anderes Employee-Objekt verweist.
In Mindset 1 würden Sie einen Anruf tätigen, der die Mitarbeiterdaten sowie die Felder zurückgibt, die zum Auffüllen der Abteilungs- und Vorgesetztenattribute erforderlich sind, oder zumindest die Felder, die am häufigsten von diesen Unterobjekten verwendet werden.
In Mindset 2 sollten Sie zuerst nur das Employee-Objekt und dann nur die Department- und Supervisor-Objekte auffüllen, wenn sie tatsächlich angefordert werden.
Die Haltung von 2 ist ziemlich einfach ... minimieren Sie die Größe der Anforderungen und die Anzahl der Datenbankobjekte, die bei jeder Anforderung getroffen werden müssen. # 1 ist der Meinung, dass selbst wenn es richtig implementiert werden könnte, die bloße Tatsache, dass der Code mehrere Verbindungen herstellen müsste, die Verbindung zwischen dem Webserver und der Datenbank mehr belasten wird, als sie zu reduzieren.
Die treibende Kraft hinter dieser Untersuchung ist, dass der Datenverkehr zwischen unserem Webserver und dem Datenbankserver außer Kontrolle gerät.