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

No one assigned

    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