Wenn ich Daten von einem lokalen Host oder einer Webadresse anfordere, gehen die Daten dann durch das Netzwerk?

Wenn ich Daten von einem lokalen Host oder einer Webadresse anfordere, gehen die Daten dann durch das Netzwerk?

Entschuldigen Sie, wenn meine Formulierung nicht ganz korrekt ist – ich bin auf diesem Gebiet ziemlich neu.

Ziel:Ich versuche, die Geschwindigkeit zu verbessern, mit der ich Daten aus meiner Datenbank abrufe

Aufstellen: Ich hoste die Datenbank auf Server A. Die Datenbank ist auch über eine Website wie www.mydbweb.com (natürlich nicht meine eigentliche Website) zugänglich. Dieser Zugriff auf der Serverseite erfolgt über Nginx mit Weiterleitungen zu etwas wie localhost:1234.

Frage:Wenn ich mich beim Server anmelde und über die Website (also www.mydbweb.com) eine Anfrage an die Datenbank stelle, werden die Daten über das Netzwerk abgerufen (richtig?). Wenn ich die Anfrage jedoch localhost:1234direkt über stelle, bedeutet dies, dass keine Daten über das Netzwerk übertragen werden?

Gibt es im Allgemeinen eine Möglichkeit, das Abrufen der Daten über das Netzwerk zu überspringen? Ich habe das Gefühl, dass das Netzwerk bei großen Datenabfragen eine Art Latenz oder Engpass verursacht.

Antwort1

Dies hängt ein wenig vom Betriebssystem und der Netzwerkkonfiguration ab, aber im Allgemeinen gibt es keinen signifikanten Geschwindigkeitsunterschied bei der Kommunikation mit einer externen IP-Adresse eines Servers oder der lokalen Host-/Loopback-IP-Adresse, da das Betriebssystem und der Netzwerkstapel normalerweise wissen, dass die externe IP-Adresse auch „diese Maschine“ ist, und Pakete nicht über die Leitung hinausgehen, sondern im Speicher verbleiben.

Allerdings führt die zusätzliche Abstraktionsschicht von nginx im Pfad zwischen Ihrer Anwendung und der Datenbank zu zusätzlicher Latenz im Vergleich zur direkten Kommunikation zwischen diesen beiden.

Der schnellste Weg, Ihre Anwendung mit Ihrer Datenbank zu verbinden (wenn beide auf demselben Host laufen), ist über einen Unix-Socket (für eine Datenbank, die unter Linux oder einem ähnlichen Unix-Betriebssystem läuft) oder eine ähnliche Direktverbindung. Bei einer solchen Verbindung ist es nicht mehr nötig, die Anfragen und Antworten in Netzwerkpakete zu kapseln.

verwandte Informationen