Retour aux FAQ Bases de données
CENTRE D’AIDE · FAQBases de données2 min de lecture

Comment réduire les requêtes N+1 dans une application ?

Le problème N+1 survient lorsque le code charge une liste, puis exécute une requête supplémentaire pour chaque élément. Le nombre de requêtes augmente alors avec les résultats et la latence peut grimper même si chacune est rapide. Repérez l’accès répété et chargez les données associées en un nombre limité de requêtes.

Bases de données

Repérer les requêtes répétées

Utilisez les journaux, le traçage ou les métriques de base pour identifier les requêtes similaires nombreuses. Comparez leur nombre au nombre de résultats et vérifiez quelle relation ou propriété déclenche la recherche répétée.

Un jeu de développement réduit peut masquer le problème. Reproduisez-le avec des volumes réalistes et vérifiez si la sérialisation, les modèles de vue ou des fonctions auxiliaires accèdent implicitement aux relations.

Charger explicitement les données liées

Selon le modèle et la base, utilisez une jointure, une recherche groupée avec les clés nécessaires ou un chargement anticipé de l’ORM. Évitez à la fois les requêtes par ligne et les résultats énormes contenant des données dupliquées.

Mesurez le nombre total de requêtes, les lignes renvoyées, la taille de réponse et la latence avant et après. Ajoutez un contrôle avec des listes représentatives et conservez pagination et filtres d’autorisation.

Retour aux FAQ Bases de données