Level Up Your Django Performance: Identifying and Taming N+1 Queries
Online talks
We're sorry!
We made a mistake in processing the videos from DjangoCon US 2024. The sponsor acknowledgements are missing our wonderful sponsor, the Wharton School. We deeply regret this and are working to re-upload videos with our correct sponsor acknowledgements.
All videos have been marked as unlisted and will be removed in the future. We expect the new, permanent videos to be uploaded in two weeks.
About this session
In this presentation, attendees will embark on a journey to understand and overcome the notorious N+1 query problem in Django development. The session will begin with an exploration of the importance of performance optimization in Django applications, emphasizing the critical role of efficient database queries in achieving robust and scalable web solutions.
We will delve into the intricacies of the N+1 query problem, unraveling its origins and impact on application performance. Through real-world examples and case studies, attendees will gain a deeper understanding of how N+1 queries manifest and the detrimental effects they can have on Django applications, such as increased latency, decreased throughput, and degraded user experience.
The core of the presentation will focus on practical solutions to mitigate the N+1 query problem and optimize Django code for enhanced performance. Attendees will learn how to identify N+1 queries in their projects and understand the underlying causes behind them. We will explore a range of techniques and best practices for resolving N+1 queries, including lazy loading, prefetching, and leveraging Django's ORM features such as select_related and prefetch_related.
Moreover, the attendees will discover how to utilize debugging tools and techniques, including the Django Debug Toolbar and SQL logging, to diagnose and address N+1 query issues effectively.
As the presentation draws to a close, we'll leave attendees with a thought-provoking question: "Why do some experts caution that fixing certain N+1 queries could potentially hurt performance?" This question invites attendees to delve deeper into the complexities of performance optimization and encourages further research and exploration into the nuanced considerations of optimizing database queries in Django applications.
By the end of the presentation, attendees will be equipped with actionable insights and practical skills to:
Identify and diagnose N+1 queries in their Django projects.
Implement effective solutions to optimize application performance and eliminate performance bottlenecks.
Utilize debugging tools and techniques to pinpoint and resolve N+1 query issues efficiently.
This presentation is designed for Django developers of all experience levels, from beginners to seasoned professionals. Whether you're new to Django or a seasoned veteran, join us to deepen your understanding of Django performance optimization and elevate your development skills to the next level.
Presented by
-
Mohammad Ahtasham ul Hassan
I am a software engineer with 3 years of experience building and maintaining software applications.
I'm particularly passionate about web development and AI. For the past 3 years I have been working with edX on the EdTech and e-commerce domain of the application maintaining the current software stack as well as integrating new features.
As an eager learner and explorer, who is constantly seeking new challenges and technologies, I can't wait to learn, share and reconnect with the DjangoCon community. -
Shafqat Farhan Ahmed
I am an experienced full-stack software engineer with 8 years of experience. I specialize in creating scalable web applications with robust backend and frontend features.
My expertise lies in Python Django and React/Next JS, particularly in developing robust applications for the EdTech industry. I have a proven track record of leading teams successfully and delivering projects that exceed client expectations.
I am always eager to mentor junior engineers. I actively contribute to the growth of my team by encouraging a collaborative environment and providing mentorship in Python/Django.
Outside of work, I love exploring mountains and believe in lifelong learning, which shapes my personal and professional growth.
I am dedicated to achieving technical excellence and keeping up with industry advancements, contributing actively to the software engineering field.