Я работаю над проектом Symfony2. В моем проекте используется база данных для хранения данных и Doctrine2 для извлечения этих данных.
По мере роста данных в базе данных запросы стали очень медленными, и все веб-приложение занимает около 2 минут для загрузки или вообще не загружается.
Единственный способ, которым я могу убедиться, что я сам это исправляю, – это кешировать некоторые запросы, но как я могу это сделать. Если нет другого способа решения этой проблемы.
 Вам нужно, чтобы ваш драйвер кэша был установлен и настроен в конфигурации доктрины ( result_cache_driver важен в вашем случае).  Как только вы это сделаете, вы можете заставить Doctrine использовать кэш результатов, установив useResultCache(true) 
 $cachedResult = $doctrine->getManager() ->createQueryBuilder() ->(...) ->useResultCache(true) ->(...) 
Проверьте это сообщение в блоге
ПРИМЕЧАНИЕ . По умолчанию, в среде dev, кеш результатов не будет использоваться
  EDIT : поскольку вы используете DBAL и не используете ORM – SymfonyDoctrineBundle не поддерживает этот вид кеш-кода, но вы можете добавить эту поддержку самостоятельно, следуя этому подробному руководству 
В режиме разработчика Symfony2 создает новый кеш для каждого запроса. Поэтому предположим, что у вас много запросов, и он будет кэшировать все запросы один за другим.
Это занимает больше времени, чем в режиме производства, потому что в режиме производства кеш будет храниться только один раз.