Performance Optimization: Fix N+1 Database Queries in Search API #357
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Performance Optimization: Fix N+1 Database Queries in Search API
Summary
This PR addresses performance inefficiencies identified in the Sourcebot codebase, specifically fixing an N+1 database query pattern in the search API that was causing unnecessary database round trips.
Changes Made
prisma.repo.findMany()
calls into a single optimized query using OR conditionsPerformance Impact
Files Changed
packages/web/src/features/search/searchApi.ts
- Fixed N+1 query patternPERFORMANCE_REPORT.md
- Added comprehensive performance analysisTechnical Details
The original code executed two separate database queries:
The optimized version combines these into a single query using OR conditions:
Testing
Additional Opportunities
The performance report identifies 4 additional optimization opportunities for future PRs:
Performance Report
A comprehensive performance analysis has been added to
PERFORMANCE_REPORT.md
documenting all identified inefficiencies with:Link to Devin run: https://app.devin.ai/sessions/306259c0a5e04b45a74c929f62fe6b58
Requested by: Brendan Kellam ([email protected])