2010-08-06 6 views
0

Je veux savoir comment je peux optimiser mes requêtes Doctrine car certaines de mes requêtes sont trop longues.Symfony: Comment optimiser la requête Doctrine?

Je ne veux pas d'une méthode particulièrement à ma requête, mais des méthodes communes que je peux appliquer à toutes les demandes, parce que je ne trouve pas d'informations à ce sujet.

Répondre

10

Voici quelques conseils pour la doctrine de meilleurs résultats:

http://www.doctrine-project.org/projects/orm/1.2/docs/manual/improving-performance/en#improving-performance

Les changements que je l'ai remarqué le plus important changement:

  • Utiliser l'hydratation de tableau au lieu d'hydratation de l'objet chaque fois que possible (c'est BEAUCOUP plus efficace)
  • N'utilise pas de trouveur de magie sauf pour écrire le code du prototype
  • Doctrine a de très jolis utilitaires de mise en cache; Configurez une requête et un cache de résultat pour vos requêtes si vous ne l'avez pas encore fait (il est très automatisé et facile à configurer: http://www.doctrine-project.org/projects/orm/1.2/docs/manual/caching/en)
  • N'oubliez pas de joindre toutes les relations que vous utilisez dans votre code de traitement dans la requête DQL; ne pas le faire obligera Doctrine à lancer une requête "cachée" pour chaque accès à une relation non-sollicitée.