Pourquoi optimiser ses requêtes ?

L'optimisation des requêtes est cruciale pour la performance de votre application. Une requête mal optimisée peut ralentir considérablement votre site et impacter négativement l'expérience utilisateur.

Le problème N+1

Le problème N+1 est l'un des pièges les plus courants avec Doctrine. Il se produit lorsque vous récupérez une collection d'entités puis, pour chaque entité, vous effectuez une requête supplémentaire pour récupérer des données liées.

Voici comment l'éviter avec les jointures et le fetch eager. Utilisez les méthodes leftJoin() et addSelect() dans vos QueryBuilder pour charger les relations en une seule requête.

Les index de base de données

L'ajout d'index appropriés peut transformer une requête lente en requête ultra-rapide. Identifiez les colonnes fréquemment utilisées dans les clauses WHERE, JOIN et ORDER BY, et ajoutez-y des index.

Best practices

Utilisez le profiler Symfony pour identifier les requêtes lentes, activez la query log en développement, et analysez vos requêtes régulièrement. Pensez également à utiliser les DTOs pour les lectures complexes.