Files
Learn_System/backend/src
Maxim Dolgolyov 3135402dd7 perf(db): +21 indexes for hot-path queries (audit 2026-05-22)
Adds missing indexes identified by comprehensive audit:

users:        created_at, last_login, role, (is_banned, role)

test_sessions: started_at, finished_at, subject_id, (status, finished_at DESC)

notifications: (user_id, created_at DESC) — previous idx was on is_read, not date

admin_audit_log: target, action, (action, created_at DESC)

classroom_*:  session_id FK indexes — prevents full-table scan on CASCADE

              DELETE (muted, attendance, invites, notes, draw_permissions, hands)

              + chat (session_id, created_at)

submissions:  (student_id, submitted_at DESC) — gradebook timeline

questions:    difficulty — exam builder filter

Skipped users.email — UNIQUE constraint already provides equality lookup.

Expected impact: 30-60% on admin overview / analytics, 10-20% on

notification/session timelines. CASCADE DELETE of classroom_sessions

no longer triggers full-table scans on 6 child tables.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 21:41:37 +03:00
..