Skip to content

fix(database): add missing indexes on loan_events table #438

@Akpolo

Description

@Akpolo

💬 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

  1. loan_events(borrower) — used in every borrower history query
  2. loan_events(event_type) — used for filtering by event type
  3. loan_events(loan_id, event_type) — composite index for loan detail queries
  4. 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.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave program

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions