Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
410 views
Welcome To Ask or Share your Answers For Others

1 Answer

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 make Doctrine to use result cache by setting useResultCache(true)

$cachedResult = $doctrine->getManager()
    ->createQueryBuilder()
    ->(...)
    ->useResultCache(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 using ORM - SymfonyDoctrineBundle doesn't support this kind of cache out of the box, but you can add this support by yourself by following this detailed guide


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...