Radhad
Erfahrenes Mitglied
Hi zusammen,
ich mache mir momentan ein paar theoretische Gedanken zur Performance-Optimierung.
Zum einen geht es darum, wie man am besten Userdaten auslesen kann mit Blick auf die Performance.
Das ist zum Beispiel wichtig bei einem Forum (oder Blogs etc.), wo zu jeden Beitrag viele Userdaten gelesen werden beim Laden eines Threads. Bisher habe ich so agiert, dass ich versucht habe, so viele Daten wie möglich mit einem SQL Query abzufragen. Allerdings hat dies ein paar Nachteile.
Ein Beispiel:
In dem Forum hat User A in Thread A insgesamt 15 Posts geschrieben. Im Ergebnis des SQL-Query's stehen also 15 mal die Userdaten des Users A drin.
Alternativ dachte ich an folgende Lösung (allerdings weiß ich nicht, ob die performanter ist, daher stelle ich diese Frage nun hier):
Im SQL Query wird nur die UserID ausgelesen. Zusätzlich gibt es ein Array, wo die Userdaten reingeschrieben werden. Existiert eine UserID in diesem Array, werden die Daten aus dem Array gelesen. Existiert die UserID nicht, wird eine Abfrage gemacht um die entsprechenden Userdaten zu holen und im Array gespeichert.
Hat jemand Erfahrungen dazu gesammelt und könnte mir Tipps geben? Userdaten werden ja fast überall gelesen (News, Blogs, Kommentare, Foren) und je nachdem ist Performance entscheidend.
Des weiteren spielt natürlich auch Sicherheit eine Rolle, z.B. BBCode um HTML verbieten zu können. Im Bereich BBCode's habe ich bisher keine Erfahrungen gesammelt, möchte dies aber demnächst einsetzen. Und zwar stelle ich mir folgende Frage: Ist es besser, die Textstrings vor dem speichern der Datenbank umzuwandeln, sprich zuerst HTML zu löschen, danach entsprechend die BBCodes umsetzen und dann zu speichern oder sollte man dies erst beim auslesen aus der Datenbank umwandeln? Gibt es da eventuell Sicherheitsprobleme? Oder gibt es da im Bereich Sicherheit gar keine unterschiede?
Gruß Radhad
ich mache mir momentan ein paar theoretische Gedanken zur Performance-Optimierung.
Zum einen geht es darum, wie man am besten Userdaten auslesen kann mit Blick auf die Performance.
Das ist zum Beispiel wichtig bei einem Forum (oder Blogs etc.), wo zu jeden Beitrag viele Userdaten gelesen werden beim Laden eines Threads. Bisher habe ich so agiert, dass ich versucht habe, so viele Daten wie möglich mit einem SQL Query abzufragen. Allerdings hat dies ein paar Nachteile.
Ein Beispiel:
In dem Forum hat User A in Thread A insgesamt 15 Posts geschrieben. Im Ergebnis des SQL-Query's stehen also 15 mal die Userdaten des Users A drin.
Alternativ dachte ich an folgende Lösung (allerdings weiß ich nicht, ob die performanter ist, daher stelle ich diese Frage nun hier):
Im SQL Query wird nur die UserID ausgelesen. Zusätzlich gibt es ein Array, wo die Userdaten reingeschrieben werden. Existiert eine UserID in diesem Array, werden die Daten aus dem Array gelesen. Existiert die UserID nicht, wird eine Abfrage gemacht um die entsprechenden Userdaten zu holen und im Array gespeichert.
Hat jemand Erfahrungen dazu gesammelt und könnte mir Tipps geben? Userdaten werden ja fast überall gelesen (News, Blogs, Kommentare, Foren) und je nachdem ist Performance entscheidend.
Des weiteren spielt natürlich auch Sicherheit eine Rolle, z.B. BBCode um HTML verbieten zu können. Im Bereich BBCode's habe ich bisher keine Erfahrungen gesammelt, möchte dies aber demnächst einsetzen. Und zwar stelle ich mir folgende Frage: Ist es besser, die Textstrings vor dem speichern der Datenbank umzuwandeln, sprich zuerst HTML zu löschen, danach entsprechend die BBCodes umsetzen und dann zu speichern oder sollte man dies erst beim auslesen aus der Datenbank umwandeln? Gibt es da eventuell Sicherheitsprobleme? Oder gibt es da im Bereich Sicherheit gar keine unterschiede?
Gruß Radhad