Ich habe eine PHP-Webanwendung, in der bestimmte Daten wöchentlich geändert werden, aber häufig gelesen werden.Beste Technik zum Zwischenspeichern von Ergebnissen aus selten wechselnden Abfragen
Die SQL-Abfragen, die die Daten und den PHP-Code für die HTML-Ausgabe abrufen, sind ziemlich komplex. Es gibt mehrere Tabellen-Joins und zahlreiche Berechnungen - aber sie ergeben eine recht einfache HTML-Tabelle. Benutzer werden gruppiert, und die Tabelle ist für jede Gruppe jede Woche gleich, aber für verschiedene Gruppen unterschiedlich. Ich könnte potenziell Hunderte von Tabellen für Tausende von Benutzern haben.
Aus Leistungsgründen möchte ich diese Daten zwischenspeichern. Anstatt diese Abfragen und Berechnungen jedes Mal auszuführen, wenn jemand auf die Seite klickt, möchte ich einen wöchentlichen Prozess ausführen, um die Tabelle für jede Gruppe zu generieren, die mir bei Bedarf einen einfachen Lesevorgang ermöglicht.
Ich würde gerne wissen, welche Techniken Sie erfolgreich oder ohne Erfolg verwendet haben, um so etwas zu erreichen?
Optionen kann ich sehen, umfassen:
- das HTML-Ergebnis der Berechnungen in einer MySQL Tabelle gespeichert, die von Benutzergruppe
- die resultierenden Daten in einer MySQL Tabelle gespeichert, die von Benutzergruppe identifiziert (schwer da es keine feste Anzahl von Datenelementen ist)
Alle anderen Vorschläge willkommen wäre, die Seitenausgabe in statischen Dateien Caching!
Einige gute Vorschläge, danke. – Damovisa
Gute Liste von Vorschlägen hier. Beachten Sie, dass das MySQL-Query-Caching kein vollständiger Fix ist - es hat Vor- und Nachteile (es kann bei häufig aktualisierten Daten die Situation verschlimmern). Wie von Assaf vorgeschlagen, ist dies nur eine von vielen Optionen. – thomasrutter