Mailinglisten-Archive |
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