0
0
Djangoframework~8 mins

Field lookups (exact, contains, gt, lt) in Django - Performance & Optimization

Choose your learning style9 modes available
Performance: Field lookups (exact, contains, gt, lt)
MEDIUM IMPACT
This affects database query speed and server response time, impacting how fast data is fetched and displayed.
Filtering database records with field lookups
Django
MyModel.objects.filter(name__exact='abc')
The 'exact' lookup can use indexes efficiently, speeding up queries.
📈 Performance Gainreduces query time by 70% on indexed fields, improves LCP
Filtering database records with field lookups
Django
MyModel.objects.filter(name__contains='abc')
The 'contains' lookup causes a full table scan if the field is not indexed, slowing queries.
📉 Performance Costblocks rendering for 50-200ms on large tables, increases server CPU usage
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Using 'contains' on unindexed text fieldN/AN/AN/A[X] Bad
Using 'exact' on indexed fieldN/AN/AN/A[OK] Good
Using 'gt' and 'lt' on unindexed numeric fieldN/AN/AN/A[X] Bad
Using 'range' on indexed numeric fieldN/AN/AN/A[OK] Good
Rendering Pipeline
Field lookups affect the server-side query execution before HTML is sent to the browser, impacting how quickly the browser can start rendering.
Server Query Execution
Network Transfer
Browser Rendering
⚠️ BottleneckServer Query Execution
Core Web Vital Affected
LCP
This affects database query speed and server response time, impacting how fast data is fetched and displayed.
Optimization Tips
1Use 'exact' lookup on indexed fields for faster queries.
2Prefer 'range' over separate 'gt' and 'lt' for numeric filtering.
3Avoid 'contains' on large unindexed text fields to prevent slow queries.
Performance Quiz - 3 Questions
Test your performance knowledge
Which field lookup is generally faster on an indexed text field?
Aexact
Bcontains
Cicontains
Dstartswith
DevTools: Network and Performance panels
How to check: 1. Open DevTools and go to Network panel. 2. Reload page and check server response time. 3. Use Performance panel to record page load and see blocking time.
What to look for: Look for long server response times and blocking periods before first content paint indicating slow queries.