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 {