I am working on a Symfony2 project. My project uses database to store the data and Doctrine2 to retrieve that data.
As the data within the database has grown the queries became very slow and the whole web app takes about 2 mins to load or does not load at all.
The only way I can see my self fixing this is to cache some queries results but how can I do that. Unless there is different way of dealing with such issue.
You need to have your cache driver installed and configured in doctrine configuration (
result_cache_driver
is important in your case). Once you have this done you can makeDoctrine
to use result cache by settinguseResultCache(true)
Check this blog post
NOTE: by default, in dev environment, result cache won't be used
EDIT: as you're using
DBAL
and not usingORM
- SymfonyDoctrineBundle doesn't support this kind of cache out of the box, but you can add this support by yourself by following this detailed guideIn developer mode Symfony2 creates a new cache on every query. So suppose you have many queries then it will cache all queries one by one.
This takes more time than in production mode, because in production mode the cache will only be stored once.