Caching Doctrine-Ergebnisse Symfony2

8

Ich arbeite an einem Symfony2-Projekt. Mein Projekt verwendet eine Datenbank zum Speichern der Daten und Doctrine2 zum Abrufen dieser Daten.

Da die Daten in der Datenbank gewachsen sind, wurden die Abfragen sehr langsam und die gesamte Web-App benötigt ungefähr 2 Minuten zum Laden oder Laden überhaupt nicht.

Der einzige Weg, wie ich sehen kann, dass ich das selbst beheben kann, ist einige Abfrageergebnisse zwischenzuspeichern, aber wie kann ich das tun? Es sei denn, es gibt einen anderen Weg, mit einem solchen Problem umzugehen.

    
Tomazi 12.01.2015, 09:57
quelle

2 Antworten

16

Sie müssen Ihren Cache-Treiber in der Doku Konfiguration installiert und konfiguriert haben ( result_cache_driver ist in Ihrem Fall wichtig). Sobald Sie dies erledigt haben, können Sie Doctrine verwenden, um den Ergebnis-Cache zu verwenden, indem Sie useResultCache(true)

setzen %Vor%

Überprüfen Sie diesen Blogbeitrag

HINWEIS : Standardmäßig wird der Ergebniscache in der Entwicklungsumgebung nicht verwendet

BEARBEITEN : da Sie DBAL verwenden und ORM nicht verwenden - SymfonyDoctrineBundle unterstützt diese Art von Cache nicht standardmäßig, aber Sie können diese Unterstützung selbst hinzufügen nach dieser detaillierte Anleitung

    
Tomasz Madeyski 12.01.2015, 10:03
quelle
0

Im Entwicklermodus erstellt Symfony2 bei jeder Abfrage einen neuen Cache. Angenommen, Sie haben viele Abfragen, dann werden alle Abfragen nacheinander zwischengespeichert.

Das dauert länger als im Produktionsmodus, weil der Cache im Produktionsmodus nur einmal gespeichert wird.

    
Jd patel 12.01.2015 10:44
quelle

Tags und Links