phpbar.de logo

Mailinglisten-Archive

[php] Session schneller als Datenbank-Query? / Alles über Hauptdatei

[php] Session schneller als Datenbank-Query? / Alles über Hauptdatei

Actra AG Internet Services info at actra.ch
Mit Jan 12 01:22:29 CET 2005


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