Lyon Optimisation des requêtes SQL dans Django et SQLAlchemy : le problème N+1
Malt Community, 73 rue de la République, Le mercredi 29 janvier 2025 de 19h00 à 21h00.
Au cours de cette présentation, nous parlerons du problème des requêtes N+1, un piège commun rencontré lors de l'utilisation d'ORM (Object-Relational Mappers) comme l'ORM de Django et SQLAlchemy. Nous verrons comment les ORMs nous simplifient la vie par rapport à la maintenance de requêtes SQL brutes.
Nous montrerons comment débuguer les requêtes SQL générées par l'ORM.
Nous expliquerons le concept de lazy loading dans les ORMs et comment il peut conduire au problème des requêtes N+1. En utilisant un exemple pratique d'une application CRUD, nous montrerons comment le lazy loading peut résulter en de multiples requêtes SQL, dégradant ainsi les performances.
Nous fournirons ensuite une solution au problème N+1 en utilisant la méthode select_related dans Django ou joinedLoad dans SQLAlchemy pour optimiser les performances des requêtes, en réduisant le nombre de requêtes SQL à une seule.
Aussi, nous présenterons CaptureQueriesContext de Django et getrecordqueries de Flask-SQLAlchemy, des outils qui peuvent être utilisés dans les tests unitaires pour s'assurer que notre application reste optimisée au fur et à mesure qu'elle évolue, évitant ainsi les régressions liées aux requêtes N+1.
Après cette présentation par Carmen un moment d’échange a lieu.
Amenez ce que vous voulez partager à boire ou à manger et comportez vous en accord avec la charte de l'AFPy !