Zur Boardunity Forenstartseite

Zurück   Boardunity & Video Forum » Technik » Programmierung und Datenbanken

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1  
Alt 13.07.2004, 21:43
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 995

Zwei Ideen rund um PHP und MySQL - Meinungen gesucht


Zur Zeit bin ich wie wild am Programmieren und mir sind mittlerweile so einige Ideen gekommen, wie man sich die eine oder andere Aufgabe vereinfachen könnte. Weil ich mich aber nicht als Experten bezeichnen würde, frage ich mal die Exeperten im Forum bezüglich dieser beiden Ideen.

Session als Speicherort
Bisher habe ich Sessions vorwiegend nur dazu genutzt, dass ich kurz einige Daten zwischenspeicher, z.B. die Logindaten. Doch kann man einiges mehr an Daten dort speichern. Zum Beispiel kam es mir in den Sinn dort sämtlich Einstellungen, Templates und Phrasen zu speichern, so dass man pro Seite auf einige Abfragen weniger kommt.

Dies würde natürlich bedeuten, dass beim erstmaligen Laden der Seite entsprechend viele Daten aus der Datenbank gelesen werden müßten. Auch muss auf jeder Seite geprüft werden, ob die Daten existieren.

Es kommt natürlich immer etwas auf die einzelnen Projekte an, auf welche man das anwenden möchte.

Cachen von Daten
Dies ist mir beim erstmal im vB3 aufgefallen, aber die Idee ist gut. Verschiedene Daten werden als Array in einer Tabelle gespeichert und können von dort bequem ausgelesen werden. So sinkt die Anzahl der Datenbankabfragen, jedoch die Datenmenge.



Würde gerne mal eure Meinung dazu hören
  #2  
Alt 14.07.2004, 01:25
Benutzerbild von Xenon
vBulletin.org Admin
 
Registriert seit: 09.2003
Ort: Bayern
Beiträge: 197
Also bei sessions muss ich passen, hab mich da noch nicht so genau damit auseinandergesetzt um da auf effizienzfragen antworten zu können, aber ich denke nicht, dass das so effizient ist, sonst würde mans schon hernehmen

Zum Caching:
Jup, das ist an und für sich eine sehr gute sache, aber du musst das immer relativ sehen.
Nimm als beispiel die vb.org Startseite. Jede hackliste/news und was weis ich noch alles ist gecacht. Das liegt daran, weil sich die meisten Listen nur selten ändern, und deshalb liegt alles gut in nem serialisierten Array.
Hast du aber info's die sich häufig ändern, dann haste durch das serialisieren zu viel overhead, und der effekt hebt sich auf, oder kehrt sich sogar um

__________________
Stefan Käser
Administrator von www.vbulletin.org

Das Publikum ist so einfältig, lieber das Neue als das Gute zu lesen.
Arthur Schopenhauer
  #3  
Alt 14.07.2004, 01:54
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 995
Ja, darum habe ich mir natürlich auch schon gedanken werden. Bei meiner Website würden sich fast nie die Sprache und Templates ändern, so dass ich diese ohne Probleme komplett cachen könnte. Wenn sich etwas ändern sollte, dann kann ich den Cache ja via Script neu erstellen.

Geplant ist außerdem, dass täglich um 4.00 morgens eine Reihe an Wartungsprogrammen aktiviert werden und in diesem Zeitraum die Website dann deaktiviert ist (htaccess). Unter anderem soll dort automatisch alle gecached Daten neu eingelesen werden.

Sollte ich dies mit der Idee der Session kombiniert werden, dann wird automatisch in der Session die Timestamps mitgespeichert, welche gleichzeitig auch in einer Variable hardcoded gespeichert sind. Sobald die Variable neuer ist als die in der Session, erfolgt auch hier ein Reload der in der Session gespeicherten Daten.

Naja, ich habe mir schon so einige Gedanken darum gemacht und die Idee gefällt mir ziemlich gut, nur frage ich lieber mal nach.

  #4  
Alt 14.07.2004, 18:22
Benutzerbild von exe
exe exe ist offline
titellos
 
Registriert seit: 07.2003
Ort: München
Beiträge: 888
Die Sessions sind als Speicherort für eher kleinere Datenmengen sicher geeignet aber bei grösseren Datenmengen könnte das etwas problematisch werden, wenn jeder Besucher auf der Website, inklusive Templates, Sprachphrasen etc.pp. mehrere hundert kilobytes an Daten in der Session ablegt. Zumal diese Daten ja entsprechend verpackt (serialisierte Arrays etc.) und bei jedem Seitenaufruf wieder entpackt werden müssen.

Caching generell ist aber eine gute Idee. Alle Daten die häufig abgerufen, aber selten geändert werden, sind praktisch zum Cachen. Dazu gehören dann beispielsweise Zugriffsrechte, Benutzergruppen, Templates (je nach Templateengine gibt es da vielleicht schone eingebaute Möglichkeiten) und, wie Xenon schon sagte, Listen die sich selten ändern.
Jenachdem um was für eine Anwendung es sich handelt lassen sich noch mehr Möglichkeiten ausdenken die Serverbelastung des Scripts zu senken.
Bei meinem Wiki beispielsweise liegt der "Flaschenhals" beim Übersetzen der WikiSyntax in HTML. Obwohl die Seiten nicht einfach komplett als HTML cachbar sind (einige Elemente wie Links hängen vom Inhalt bzw. der Existenz anderer Seiten ab) habe ich ein System getestet mit dem Seiten, bis auf einige Details, geparsed im Cache abgelegt werden - bei längeren Seiten hat das die Ausführungszeit des Scripts um bis zu 25% verringert.

Abgesehen von den standardmäßig gecachten Daten würde ich also den Punkt in deinem Script suchen der den Server am meisten belastet - und sehen wie sich dort die Belastung reduzieren lässt.

  #5  
Alt 14.07.2004, 21:15
Benutzerbild von TRS
TRS TRS ist offline
Mitglied
 
Registriert seit: 02.2003
Ort: Berlin
Beiträge: 995
Gut, das mit der Datenmenge habe ich mir auch schon gedacht. Aber die Daten muss man nicht unbedingt verpacken, sondern kann man ja als mehrdimensionalen Array speichern ( $_SESSION['phrasen']['xxx'] ). Ich werde vielleicht das ganze einfach mal für ein paar Tage im live testen.

Mir ist aber bezüglich der Sessions gleich noch ein Sicherheitsaspekt aufgefallen, mit welchem man Websites noch etwas sicherer machen kann. Eine Variable wird, wie zum Beispiel die Seitenzahl bei einer mehrseitigen Aufzählung, in der Session speichern. Auf die folgende Seite gelangt man über die .php?go=nextpage und auf der folgenden Seite wird den die Seitenzahl in der Session erhöht.

Das Beispiel ist jetzt von Sicherheitsaspekt nicht so großartig, aber vielleicht bei Formularen wie Löschung von Daten aus der Datenbank kann man es zumindest einigen Hackern schwieriger machen.

Nur mal wieder eine Idee, dir mir gekommen ist...

Antwort


Stichworte
-


Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ideen rund um Nullposter TRS Community Management, Administration und Moderation 32 22.05.2005 11:10
PHP Scrips gesucht HILFE Jochen2003 Blog, CMS, Wiki und Sonstige 5 15.04.2004 00:23
PHP & MySQL: Lizenzkonflikte wurden gelöst Michael Przybyla Boardunity-Talk 5 06.04.2004 21:57






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25