From e7fcbd43313534e352fa4ff4e37ead6521d5db5a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 9 Feb 2026 21:30:24 +0000 Subject: [PATCH] add read-oriented recipient and message indexes Co-authored-by: Kent C. Dodds --- .../20260209212910_add_read_query_indexes/migration.sql | 5 +++++ prisma/schema.prisma | 2 ++ 2 files changed, 7 insertions(+) create mode 100644 prisma/migrations/20260209212910_add_read_query_indexes/migration.sql diff --git a/prisma/migrations/20260209212910_add_read_query_indexes/migration.sql b/prisma/migrations/20260209212910_add_read_query_indexes/migration.sql new file mode 100644 index 00000000..a1c915f1 --- /dev/null +++ b/prisma/migrations/20260209212910_add_read_query_indexes/migration.sql @@ -0,0 +1,5 @@ +-- CreateIndex +CREATE INDEX "message_history_by_recipient" ON "Message"("recipientId", "sentAt", "id"); + +-- CreateIndex +CREATE INDEX "recipient_by_phone" ON "Recipient"("phoneNumber"); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6f3ccc78..2b244a6e 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -148,6 +148,7 @@ model Recipient { // non-unique foreign key @@index([userId]) @@index([userId, id], name: "recipient_by_user") + @@index([phoneNumber], name: "recipient_by_phone") // Optimized composite index for cron query: equality cols first, then range, then join @@index([verified, disabled, nextScheduledAt, userId], name: "Recipient_cron_query_idx") } @@ -168,6 +169,7 @@ model Message { // non-unique foreign key @@index([recipientId]) @@index([recipientId, sentAt, order]) + @@index([recipientId, sentAt, id], name: "message_history_by_recipient") } model SourceNumber {