Add performance optimizations and database indexes
Database Indexes (migrations 006-009): - Add case-insensitive indexes for auth lookups (email, username) - Add composite indexes for task kanban queries - Add indexes for notification, document, and completion queries - Add unique index for active share codes - Remove redundant idx_share_code_active and idx_notification_user_sent Repository Optimizations: - Add FindResidenceIDsByUser() lightweight method (IDs only, no preloads) - Optimize GetResidenceUsers() with single UNION query (was 2 queries) - Optimize kanban completion preloads to minimal columns (id, task_id, completed_at) Service Optimizations: - Remove Category/Priority/Frequency preloads from task queries - Remove summary calculations from CRUD responses (client calculates) - Use lightweight FindResidenceIDsByUser() instead of full FindByUser() These changes reduce database load and response times for common operations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
15
migrations/009_remove_redundant_indexes.up.sql
Normal file
15
migrations/009_remove_redundant_indexes.up.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
-- Migration: 009_remove_redundant_indexes
|
||||
-- Description: Remove indexes that are redundant or unused
|
||||
|
||||
-- Remove redundant share code index
|
||||
-- idx_share_code_active is superseded by unique idx_sharecode_code_active (migration 008)
|
||||
-- Both filter WHERE is_active = true, but 008's unique index on (code) is more restrictive
|
||||
DROP INDEX IF EXISTS idx_share_code_active;
|
||||
|
||||
-- Remove unused composite notification index
|
||||
-- idx_notification_user_sent on (user_id, sent) is never used:
|
||||
-- - GetPendingNotifications() only filters on sent, not user_id
|
||||
-- - FindByUser() only filters on user_id, not sent (uses idx_notification_user_created_at)
|
||||
-- - No queries combine user_id AND sent together
|
||||
-- The leading column (user_id) queries already use idx_notification_user_created_at
|
||||
DROP INDEX IF EXISTS idx_notification_user_sent;
|
||||
Reference in New Issue
Block a user