Frage

Gibt es eine einfache Möglichkeit zum Cachen? MySQL queries In PHP Oder gibt es, falls dies nicht der Fall ist, einen kleinen Klassensatz, den jemand geschrieben und zur Verfügung gestellt hat und der dies tun kann?Ich kann eine ganze Seite zwischenspeichern, aber das funktioniert nicht, da sich einige Daten ändern, andere jedoch nicht. Ich möchte den Teil zwischenspeichern, der dies nicht tut.

War es hilfreich?

Lösung

Dies ist eine großartige Übersicht darüber, wie Abfragen in MySQL zwischengespeichert werden:

Andere Tipps

Sie können verwenden Zend Cache um unter anderem Ergebnisse Ihrer Abfragen zwischenzuspeichern.

Ich denke, die Größe des Abfragecaches ist standardmäßig 0, was deaktiviert ist.Bearbeiten Sie Ihre my.cnf-Datei so, dass sie mindestens ein paar Megabyte groß ist.Keine PHP-Änderungen notwendig :)

Es ist vielleicht völlig übertrieben für das, was Sie versuchen, aber schauen Sie es sich an eAccelerator oder Memcache.Wenn Sie Abfragen haben, die sich regelmäßig ändern, und Abfragen, die sich nicht ändern, möchten Sie möglicherweise nicht, dass alle Ihre Datenbankabfragen für die gleiche Zeitspanne von MySQL zwischengespeichert werden.

Mit Caching-Engines wie den oben genannten können Sie für jede einzelne Abfrage entscheiden, wie lange die Daten zwischengespeichert werden sollen.Angenommen, Sie haben Daten in Ihrem Header, die sich selten ändern, können Sie überprüfen, ob sie sich derzeit im Cache befinden. Wenn ja, geben Sie sie zurück. Andernfalls führen Sie die Abfrage durch und legen Sie sie mit einer Lebensdauer von N in den Cache, also für den nächsten N Sekunden lang ruft jeder Seitenladevorgang die Daten aus dem Cache ab, ohne in die Nähe von MySQL zu gelangen.Anschließend können Sie Ihre anderen Daten bei Bedarf „live“ aus der Datenbank abrufen und dabei den Cache umgehen.

Ich würde die Caching-Route für die gesamte Seite empfehlen.Wenn sich einige Daten ändern, platzieren Sie einfach Token/Platzhalter anstelle der dynamischen Daten.Cachen Sie die gesamte Seite mit diesen Tokens im Cache und verarbeiten Sie dann die Tokens für die zwischengespeicherten Daten für die Tokens nach.Somit haben Sie jetzt eine zwischengespeicherte Seite, die dynamischen Inhalt enthält.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top