howitworks.io logohowitworks
← Saari reels
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

  1. Dev mein query logging on karo: Rails server log, Django Debug Toolbar, ya Postgres mein log_statement = 'all'.
  2. Ek page load karo aur dekho koi SELECT ... WHERE id = ? sirf id badal kar baar baar to nahi chal raha.
  3. Rails: Post.includes(:user). Django: Post.objects.select_related('user').
  4. 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.

Aise hi tech cases ke liye follow karo