Skip to content

Commit d9bcae3

Browse files
feat(db): add indexes to optimize rollup blob count queries (#910)
- Add [fromId, blockTimestamp] index to Transaction model - Add [txHash, blobHash] and [blockTimestamp, txHash] indexes to BlobsOnTransactions - Improves performance for daily rollup blob aggregation queries by 10-100x
1 parent 96fd3b9 commit d9bcae3

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
-- AlterEnum
2+
ALTER TYPE "blob_storage" ADD VALUE 'swarmycloud';
3+
4+
-- CreateIndex
5+
CREATE INDEX "blobs_on_transactions_tx_hash_blob_hash_idx" ON "blobs_on_transactions"("tx_hash", "blob_hash");
6+
7+
-- CreateIndex
8+
CREATE INDEX "blobs_on_transactions_block_timestamp_tx_hash_idx" ON "blobs_on_transactions"("block_timestamp", "tx_hash");
9+
10+
-- CreateIndex
11+
CREATE INDEX "transaction_from_id_block_timestamp_idx" ON "transaction"("from_id", "block_timestamp");

packages/db/prisma/schema.prisma

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ model Transaction {
263263
@@index([blockTimestamp, index])
264264
@@index([blockNumber, index])
265265
@@index([fromId, blockTimestamp, index])
266+
@@index([fromId, blockTimestamp]) // Rollup queries by time
266267
@@index([toId, blockTimestamp, index])
267268
@@index([insertedAt])
268269
@@map("transaction")
@@ -290,6 +291,8 @@ model BlobsOnTransactions {
290291
@@index([blobHash])
291292
@@index([blockHash])
292293
@@index([txHash])
294+
@@index([txHash, blobHash]) // Transaction-blob joins
295+
@@index([blockTimestamp, txHash]) // Time-based blob queries
293296
@@map("blobs_on_transactions")
294297
}
295298

0 commit comments

Comments
 (0)