Die Position des Datenbankservers relativ zum Viewer ist nicht der wesentliche Leistungsfaktor. Als Website-Besucher sprechen Sie nicht mit der Datenbank - Sie sprechen mit einem Webanwendungsserver, der mit der Datenbank kommuniziert.
Viel wichtiger ist normalerweise der Speicherort des Datenbankservers relativ zum Anwendungsserver, da viele Anwendungen mehrere Abfragen und somit mehrere Umläufe in die Datenbank erfordern, um eine einzelne Seite zu rendern, und diese Umlaufzeiten steigen die Zeit, die für die Wiedergabe einer Seite benötigt wird. Wenn sich die Datenbank physisch in der Nähe der Anwendungsebene befindet, wird diese Zeit vernachlässigbar.
In allgemeinen Webbegriffen, in einer gut verwalteten Site wie SE, mit allen unterstützenden Assets in einem CDN, ist die einzige Verzögerung, die für Sie relevant ist, die für diese eine große HTTP-Anfrage/Antwort erforderliche Laufzeit um den Seiteninhalt zu rendern. Die Laufzeit ist nicht vernachlässigbar, denn die Lichtgeschwindigkeit ist noch begrenzt, so dass die Round-Trip-Zeiten zu weit entfernten Orten auch auf den besten Routen leicht im Bereich von 200-300ms liegen können ... aber wenn Sie es nur durchqueren müssen Einmal haben Sie noch eine respektable Reaktionszeit.
Eine Website, die eine Menge Ajax verwendet, um zusätzliche Daten zu holen, würde mit dem so weit entfernten Webserver nicht so gut laufen. Wenn ein solches Design benötigt würde, würden Sie geographisch verteilte Webserver mit benachbarten Datenbankreplikaten und Geo-Routing in DNS benötigen, um schreibgeschützte Ajax-Anfragen an den nächsten Webserver zu senden, der sein lokales Replikat abfragen und eine schnelle Antwort erhalten könnte und erwidere eine schnelle Antwort.
Ich bewegte einmal einen MySQL-Server - relativ zum App-Server - von ~ 0,5 ms entfernt zu ~ 25ms entfernt. Die Seitenladezeit auf der Site (die bereits nicht optimal war) wurde von 2 Sek. Auf 10 Sek. Erhöht. Der Grund? Die App hatte im Laufe der Jahre viele Wiederholungen durchlaufen und viele unnötige Anfragen an die Datenbank gestellt ... wenn ich mich recht erinnere, benötigte selbst die einfachste Seite 13 verschiedene Abfragen, von denen die meisten Daten abriefen, die nicht tatsächlich verwendet wurden (wie das Holen Ihrer Punktzahl auch für Seiten, die Ihre Punktzahl nicht anzeigen. Diese Ineffizienz blieb unerkannt, solange die App und die db sehr, sehr nahe waren. Aber auch hier ging es um den Abstand zwischen dem Webserver und der Datenbank, nicht um die Datenbank und den Browser.
Stack Exchange hat zwei Rechenzentren, aber eine davon ist nur eine Hot Standby/Failover-Site. Die Hauptstelle erledigt alle Arbeiten im normalen Betrieb. Und SE benutzt MSSQL, aber das ist auch unwesentlich, weil das grundlegende Phänomen, das hier wirkt, ein Gesetz der Physik ist.
Elektronen sind wirklich, wirklich schnell in Bezug auf die Abstände zwischen Orten auf der Erdoberfläche. Photonen sind noch schneller (in Glasfaserkabeln). Und StackExchange verwendet, soweit ich weiß, kein MySQL. –
Ich denke, sie verwenden MSSQL Ich dachte, alle SQL-Produkte würden ungefähr die gleiche Geschwindigkeit sein. Könnte MSSQL schneller sein? – Francis
Es gibt viele andere Dinge als den Datenbankserver, die die Geschwindigkeit der Seitenladung beim Endbenutzer beeinflussen. – Shadow