Mailinglisten-Archive |
Liebe User dieser Mailingliste auf der Suche nach Rat bin ich über php.net auf diese Mailingliste gestossen. Ich habe zurzeit folgendes Problem, und wäre für ein paar hilfreiche Tipps / Anweisungen sehr dankbar. Ich betreibe ein Internetportal auf einem LAMP System, bei dem bei der Anmeldung für jedes Mitglied ein eigenes Unterverzeichnis im Root-Verzeichnis (home/httpd/vhosts/domain.tld/httpdocs/username/) erstellt wird, wo persönliche Dateien gespeichert werden. Die Mitgliederdaten sind in einer MySQL-Datenbank gespeichert. Das Portal zählt zurzeit über 12'000 Mitgliederkonten. Früher wurden in jedem dieser Verzeichnisse bei der Anmeldung automatisch einige Grunddateien, wie z.B. die index.html erstellt. Wenn ich die index.html einmal ändern wollte, musste ich ein PHP-Skript durch alle Verzeichnisse laufen lassen, um das index.html mit der neuen Version zu überschreiben. Neu lasse ich sämtliche Requests über das RewriteMod (in einer .htaccess im Root, bzw. später Directory in der php.ini) an eine bestimmte Datei (nennen wir sie einmal hauptdatei.php) im Root-Verzeichnis weiterleiten, welche dem Client dann die angeforderten Daten sendet. Je nach Anfrage werden in die hauptdatei.php verschiedene Klassen included und Datenbankabfragen ausgeführt. Gemäss Webalizer Version 2.01 werden durchschnittlich pro Tag über 200'000 Hits gezählt. Ich habe nun den Eindruck, dass seit der Umstellung auf das neue System, das alle Requests über die hauptdatei.php im Root laufen, die Performance schlechter geworden ist, als dies beim alten System der Fall war. Kann das sein? Früher hatte jede index.html in jedem Verzeichnis, als sie abgefragt wurde, auch einige MySQL-Abfragen ausgeführt, zum Beispiel für den Besucherzähler und die Benutzerauthentifikation. Heute macht dies die hauptdatei.php natürlich auch. Die Benutzerauthentifikation wird mit HTTPAuth ausgeführt, die Zugangsdaten werden mit der Datenbank verglichen um zu entscheiden, ob der Zugriff gewährt wird. Meine Frage wäre nun grundsätzlich, ob es auf die Performance eine positive Auswirkung hätte, wenn ich nun nur noch beim Login die individuellen Userdaten aus der Datenbank abfragen und diese dann in einer Session speichern würde, anstelle bei jedem neuen Request immer dieselben Datenbankabfragen machen zu müssen? Oder hat dies keine Auswirkung auf die Geschwindigkeit? Ich könnte z.B. mit einer Session Bestätigen, dass diese und jene Datenbankabfragen bei dieser Sitzung schon durchgeführt wurden nicht nicht bei jedem Anklicken eines Links neu gemacht werden müssen. Würde das etwas bringen? Vielen Dank für Ihre Unterstützung! Freundliche Grüsse Christof Moser Actra AG Internet Services Krummgasse 3a 8153 Rümlang Tel +41 44 817 22 18 Fax +41 44 817 20 38 Email info at actra.ch http://www.actra.ch
php::bar PHP Wiki - Listenarchive