Optimisation des requêtes : Comment éviter le problème des N+1 ?
Salut la communauté !
L'un des plus grands défis en travaillant avec l'ORM de Django est de maintenir la **performance** lorsque les projets grandissent.
Je vois souvent de nouveaux développeurs tomber dans le piège classique des **requêtes N+1** qui ralentissent dramatiquement le chargement des pages.
### 🤔 Le Défi : Éviter les N+1
Pour ceux qui ne sont pas familiers, le problème N+1 se produit lorsque nous itérons sur un jeu de résultats (la requête "1") et que, pour chaque élément (les requêtes "N"), nous effectuons une requête supplémentaire pour récupérer une relation (ForeignKey ou ManyToMany).
**Ma question à la communauté est :**
Quelles sont vos meilleures pratiques et vos techniques préférées pour prévenir ou corriger ces requêtes inutiles ?
* Utilisez-vous principalement **`select_related`** ou **`prefetch_related`** ?
* Avez-vous des astuces d'audit (comme `django-debug-toolbar`) pour repérer ces requêtes tôt ?
* Y a-t-il des cas où vous trouvez que l'ORM est trop complexe et où vous passez à du **SQL brut** ?
Partagez vos méthodes et aidez-nous à écrire des requêtes Django plus efficaces !