From 9fe235051ef413f6889dc56fafaccf676593bf4d Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Fri, 31 Oct 2025 15:33:40 +1100 Subject: [PATCH] Additional indices for performance issues noted --- .../migration.sql | 13 +++++++++++++ prisma/schema.prisma | 3 +++ 2 files changed, 16 insertions(+) create mode 100644 prisma/migrations/20251107090000_add_my_reviews_indexes/migration.sql diff --git a/prisma/migrations/20251107090000_add_my_reviews_indexes/migration.sql b/prisma/migrations/20251107090000_add_my_reviews_indexes/migration.sql new file mode 100644 index 0000000..89c16fd --- /dev/null +++ b/prisma/migrations/20251107090000_add_my_reviews_indexes/migration.sql @@ -0,0 +1,13 @@ +-- Add indexes to support faster `/v6/my-reviews` queries. + +CREATE EXTENSION IF NOT EXISTS pg_trgm; + +CREATE INDEX IF NOT EXISTS "challenge_status_type_track_created_at_idx" + ON "Challenge" ("status", "typeId", "trackId", "createdAt" DESC); + +CREATE INDEX IF NOT EXISTS "challenge_phase_challenge_open_end_idx" + ON "ChallengePhase" ("challengeId", "isOpen", "scheduledEndDate", "actualEndDate"); + +CREATE INDEX IF NOT EXISTS "challenge_name_trgm_idx" + ON "Challenge" + USING gin ("name" gin_trgm_ops); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 602163f..836aa6d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -155,6 +155,8 @@ model Challenge { @@index([endDate]) @@index([status, startDate]) @@index([trackId, typeId, status]) + @@index([status, typeId, trackId, createdAt(sort: Desc)], map: "challenge_status_type_track_created_at_idx") + @@index([name], type: Gin, ops: [gin_trgm_ops], map: "challenge_name_trgm_idx") @@index([legacyId]) @@index([projectId, status]) } @@ -540,6 +542,7 @@ model ChallengePhase { @@index([challengeId]) @@index([challengeId, isOpen]) @@index([challengeId, name]) + @@index([challengeId, isOpen, scheduledEndDate, actualEndDate], map: "challenge_phase_challenge_open_end_idx") } //////////////////////////////////////////