Files
unified-media-manager/internal/db/migrations/011_performance_indexes.sql
2026-04-24 10:45:19 -07:00

16 lines
775 B
SQL

-- Add has_files column to avoid correlated subquery per row
ALTER TABLE media ADD COLUMN IF NOT EXISTS has_files BOOLEAN NOT NULL DEFAULT false;
-- Backfill from existing data
UPDATE media SET has_files = EXISTS (SELECT 1 FROM media_files mf WHERE mf.media_id = media.id AND mf.deleted_at IS NULL);
-- Add index for the upgrade detection query
CREATE INDEX IF NOT EXISTS idx_media_upgrade_candidates
ON media (media_type) WHERE monitored = true AND has_files = true
AND current_quality IS NOT NULL AND desired_quality IS NOT NULL
AND current_quality::text != desired_quality::text;
-- Add trigram index for substring title search
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX IF NOT EXISTS idx_media_title_trgm ON media USING gin (title gin_trgm_ops);