Symfony: Как я могу оптимизировать запрос Doctrine? - PullRequest
0 голосов
/ 06 августа 2010

Я хочу знать, как я могу оптимизировать свои запросы Doctrine, потому что некоторые из моих запросов слишком длинные.

Мне не нужен метод, особенно для моего запроса, но общие методы я могу применить ко всем запросам, потому что я не нахожу информацию об этом.

1 Ответ

10 голосов
/ 06 августа 2010

Вот несколько советов, как заставить Doctrine работать лучше:

http://www.doctrine -project.org / projects / orm / 1.2 / docs / manual / улучшение-производительности / ru # улучшение-производительности

Изменения, которые я заметил, делают самое большое изменение:

  • Использование гидратации массива вместо гидратации объекта, когда это возможно (это НАМНОГО более эффективно)
  • Не используйте магические искатели, кроме случаев, когда вы пишете прототип кода
  • В Doctrine есть очень хорошие утилиты кэширования;Настройте запрос и кэш результатов для своих запросов, если вы этого еще не сделали (это очень автоматизировано и легко настраивается: http://www.doctrine -project.org / projects / orm / 1.2 / docs / manual / caching / en )
  • Не забудьте объединить все отношения, которые вы используете в коде обработки, в запросе DQL;в противном случае Doctrine будет запускать «скрытый» запрос для каждого доступа к незатронутому отношению.
...