Hallo,
bei Datenbankservern wie z.B. MySQL (und einen/mehrere Webserver auf Apache+PHP Basis) gibt es ja typischerweise zwei verschiedene Ansätze.
Enweder man hält die Daten lokal auf jedem Rechner und kann die Datenbank über localhost ansprechen. Oder man hat einen Datenbankserver, welcher über LAN angesprochen wird.
Meine Frage ist nun: Das Netzwerk hat ja eine gewisse Latenzzeit. Nehmen wir an, das wären ca. 10 Millisekunden, die ein typisches Packet vom Webserver zum Switch, dann zum DB-Server und wieder zurück braucht. Schlimmer noch: der Apache-Prozess steht für diese Zeit ebenfalls lahm und wartet auf die Antwort des db Servers; also wäre das Netzwerk ein Flaschenhals und nicht der db server.
Wäre man da nicht auf 100 Datenbankabfragen pro Sekunde beschränkt? Wäre es dann nicht logischer alle Daten auf die Webserver zu replizieren und dort über localhost den MySQL server zu kontaktieren? bzw. wie kann man das anders lösen (wäre ja ein riesenaufwand das ständig synchron zu halten [Replikation]).
Mich nimmt einfach wunder, wie Sites wie z.B. wikipedia o.ä. mehrere tausend zugriffe pro sekunde mit db access realisieren. das geht für mein Verständnis nicht über das netzwerk, es sei denn man hat duzende von Rechnern.
Was meint ihr dazu?
Grüsse
Max