BackendReel #26 · 4 Nov 2026
Website slow kyun hai? Culprit: N+1 query (Backend courtroom)
N+1 query problem: ek query se list (100 posts) aati hai, phir loop mein har item ke liye ek aur query (har post ka author), yaani 1 + N = 101 queries ek page ke liye. ORM ka lazy loading ise chupa deta hai. Fix eager loading hai: Rails includes / preload, Django select_related (foreign key) ya prefetch_related (many-to-many), ya SQL JOIN. Isse 101 queries 1 ya 2 queries ban jaati hain. Video ke numbers (8.2 s, 101 queries) ek example hain.
Links
Aaj ye karo
- Dev mein query logging on karo: Rails server log, Django Debug Toolbar, ya Postgres mein log_statement = 'all'.
- Ek page load karo aur dekho koi SELECT ... WHERE id = ? sirf id badal kar baar baar to nahi chal raha.
- Rails: Post.includes(:user). Django: Post.objects.select_related('user').
- Ya seedha SQL JOIN likho, aur fix ke baad query count dobara gino.
Post.includes(:user).limit(100)Post.objects.select_related('user')[:100]SELECT posts.*, users.name FROM posts JOIN users ON users.id = posts.user_id;Sources
Rails Guides, Django docs; 4 Nov 2026 ko check kiya.
howitworks