Optimize Budget model performance by preventing N+1 queries #2504

Closed
SyedaAnshrahGillani wants to merge 1 commits from optimize-budget-donut-chart-performance into main

1 Commits

Author SHA1 Message Date
SyedaAnshrahGillani
47e60daf12 Optimize Budget model performance by preventing N+1 queries
- Fixed N+1 query issue in  method that was causing excessive database calls
- Optimized category lookups by pre-computing category totals with  for O(1) lookup
- Added explicit  to prevent redundant category association loads
- Applied same optimization to  method
- Added comprehensive test coverage to verify performance improvements
- These changes significantly reduce database queries when rendering budget donut charts

Performance Impact:
- Before: N budget_categories × 2 queries (category + expense lookup) = 2N queries per chart
- After: 2 total queries (1 preload + 1 expense totals) regardless of category count

This optimization is especially impactful for users with many budget categories,
reducing response time and database load on budget-related pages.
2025-07-23 16:07:57 +05:00