💬 Want to contribute? Join us on Telegram: https://t.me/+DOylgFv1jyJlNzM0
Problem
The loan_events table has no indexes on the columns most commonly used in queries. As data grows, every request for borrower history or event type filtering becomes a full table scan.
Missing Indexes
loan_events(borrower) — used in every borrower history query
loan_events(event_type) — used for filtering by event type
loan_events(loan_id, event_type) — composite index for loan detail queries
loan_events(created_at) — used in date range filters
Expected Fix
Add a new migration file under backend/src/db/migrations/ that creates these indexes:
CREATE INDEX IF NOT EXISTS idx_loan_events_borrower ON loan_events(borrower);
CREATE INDEX IF NOT EXISTS idx_loan_events_event_type ON loan_events(event_type);
CREATE INDEX IF NOT EXISTS idx_loan_events_loan_id_event_type ON loan_events(loan_id, event_type);
CREATE INDEX IF NOT EXISTS idx_loan_events_created_at ON loan_events(created_at);
Impact
Dashboard and borrower history pages will be slow and timeout under real load without these indexes.
Problem
The
loan_eventstable has no indexes on the columns most commonly used in queries. As data grows, every request for borrower history or event type filtering becomes a full table scan.Missing Indexes
loan_events(borrower)— used in every borrower history queryloan_events(event_type)— used for filtering by event typeloan_events(loan_id, event_type)— composite index for loan detail queriesloan_events(created_at)— used in date range filtersExpected Fix
Add a new migration file under
backend/src/db/migrations/that creates these indexes:Impact
Dashboard and borrower history pages will be slow and timeout under real load without these indexes.