phpbar.de logo

Mailinglisten-Archive

[php] Effizienzfrage von Objekten/Datenbankzugriff

[php] Effizienzfrage von Objekten/Datenbankzugriff

Ithamar Garbe php_(at)_phpcenter.de
Tue, 01 May 2001 18:27:35 +0200


Hallo Liste,

ich hab mal eine interessante Frage, über die ich gerne mal diskutieren
möchte:

Ich plane ein Userverwaltungssystem im Internet, bei dem man sich
anmeldet, sein Profil angibt und sich dann einloggen kann. Durch die
Registrierung kann man die Seite an den User anpassen, z.B. persönliche
News anzeigen lassen.
Das bedeutet aber auch, dass ich auf die Userdaten, die in einer MySQL
Datenbank abgespeichert werden, relativ häufig zugreifen muss. Um die
Zugriffe zu vermindern, habe ich mir überlegt, die Userdaten zu Beginn
der Session aus der Datenbank zu holen, in einem Objekt auszulagern und
die Objektvariable in der Session abzuspeichern. So kann ich jederzeit
auf das Userprofil zurückgreifen, ohne die Datenbank ansprechen zu
müssen.
Allerdings benötige ich dadurch mehr Speicher, während ich bei der
anderen Möglichkeit den Datenbankserver häufig belaste. Deswegen die
Frage: Was ist besser?
Ein paar kleine Infos zum System:
Die Userdaten, die abgespeichert werden sollen, bestehen aus den
üblichen Daten (Name, Email, Ort, etc.) sowie optionale Angaben, wie
z.B. freiwillige Angaben oder im Lauf der Zeit gesammelte Daten über den
User.
Die Datenbank wird in Etwa 20 000 Datensätze beinhalten, die aber
schnell anwachsen können (je nachdem, wie viel Resonanz das System
bekommt) und umfangreicher werden können.
Pro Stunde kann ich in etwa mit 20 Zugriffen auf die Webseite rechnen,
pro Seite, die aufgerufen wird, in etwa einen Datenbankzugriff (auf das
Profil), wenn ich ohne Objekt arbeite.
Dazu kommen halt noch Zugriffe auf andere Webseiten auf den Server, die
dort gehostet sind.

Hat jemand damit schon Erfahrung,  was die Geschwindigkeit etc.
betrifft? Ich weiss, es ist vielleicht eine etwas schwierige Frage, so
etwas zu beurteilen, aber ich denke mir, bei dieser Größenordnung gibt
es da sicher Unterschiede.

Ausgehend von einer Standart-PHP Installation auf einem Linux-System
würde ich sagen, dass bei mehreren Usern, deren Daten im Speicher
abgelegt werden, dieser schnell voll wird und deswegen die Performance
in den Keller geht. Andererseits wird der Server durch andauernde
Datenbankverbindungen auch gestresst, was auch negative Auswirkungen
hat. Nur, was hat die größeren Auswirkungen?

Wäre sehr froh über Optimierungstips oder Kritiken / Informationen /
Erfahrungswerte.

Gruss,
Ithamar Garbe

P.S.: Falls ich nicht genug Infos gegeben habe, einfach nachfragen,
vielleicht hab ich was vergessen. Als PHP- und MySQL-Version setze ich
die aktuellsten voraus, die Serverausstattung dürfte bei einem reinen
Effizienzvergleich keine soo große Rolle spielen...



php::bar PHP Wiki   -   Listenarchive