Browse Source

Add missing database indexes

pull/3033/head
Thomas Kaul 2 years ago
parent
commit
e1fe92a327
  1. 4
      apps/api/src/app/account/account.service.ts
  2. 2
      apps/api/src/app/user/user.service.ts
  3. 59
      prisma/migrations/20240221201438_add_missing_indexes/migration.sql
  4. 25
      prisma/schema.prisma

4
apps/api/src/app/account/account.service.ts

@ -21,10 +21,8 @@ export class AccountService {
public async account({
id_userId
}: Prisma.AccountWhereUniqueInput): Promise<Account | null> {
const { id, userId } = id_userId;
const [account] = await this.accounts({
where: { id, userId }
where: id_userId
});
return account;

2
apps/api/src/app/user/user.service.ts

@ -438,7 +438,7 @@ export class UserService {
settings
},
where: {
userId: userId
userId
}
});

59
prisma/migrations/20240221201438_add_missing_indexes/migration.sql

@ -0,0 +1,59 @@
-- CreateIndex
CREATE INDEX "Access_granteeUserId_idx" ON "Access"("granteeUserId");
-- CreateIndex
CREATE INDEX "Access_userId_idx" ON "Access"("userId");
-- CreateIndex
CREATE INDEX "Account_currency_idx" ON "Account"("currency");
-- CreateIndex
CREATE INDEX "Account_userId_idx" ON "Account"("userId");
-- CreateIndex
CREATE INDEX "AccountBalance_accountId_idx" ON "AccountBalance"("accountId");
-- CreateIndex
CREATE INDEX "AuthDevice_userId_idx" ON "AuthDevice"("userId");
-- CreateIndex
CREATE INDEX "MarketData_state_idx" ON "MarketData"("state");
-- CreateIndex
CREATE INDEX "Order_isDraft_idx" ON "Order"("isDraft");
-- CreateIndex
CREATE INDEX "Order_userId_idx" ON "Order"("userId");
-- CreateIndex
CREATE INDEX "Subscription_userId_idx" ON "Subscription"("userId");
-- CreateIndex
CREATE INDEX "SymbolProfile_assetClass_idx" ON "SymbolProfile"("assetClass");
-- CreateIndex
CREATE INDEX "SymbolProfile_dataSource_idx" ON "SymbolProfile"("dataSource");
-- CreateIndex
CREATE INDEX "SymbolProfile_isin_idx" ON "SymbolProfile"("isin");
-- CreateIndex
CREATE INDEX "SymbolProfile_name_idx" ON "SymbolProfile"("name");
-- CreateIndex
CREATE INDEX "SymbolProfile_symbol_idx" ON "SymbolProfile"("symbol");
-- CreateIndex
CREATE INDEX "User_accessToken_idx" ON "User"("accessToken");
-- CreateIndex
CREATE INDEX "User_createdAt_idx" ON "User"("createdAt");
-- CreateIndex
CREATE INDEX "User_provider_idx" ON "User"("provider");
-- CreateIndex
CREATE INDEX "User_role_idx" ON "User"("role");
-- CreateIndex
CREATE INDEX "User_thirdPartyId_idx" ON "User"("thirdPartyId");

25
prisma/schema.prisma

@ -19,6 +19,9 @@ model Access {
userId String
GranteeUser User? @relation("accessGet", fields: [granteeUserId], references: [id])
User User @relation("accessGive", fields: [userId], references: [id])
@@index([granteeUserId])
@@index([userId])
}
model Account {
@ -39,7 +42,9 @@ model Account {
Order Order[]
@@id([id, userId])
@@index([currency])
@@index([id])
@@index([userId])
}
model AccountBalance {
@ -51,6 +56,8 @@ model AccountBalance {
userId String
value Float
Account Account @relation(fields: [accountId, userId], onDelete: Cascade, references: [id, userId])
@@index([accountId])
}
model Analytics {
@ -70,6 +77,8 @@ model AuthDevice {
updatedAt DateTime @updatedAt
userId String
User User @relation(fields: [userId], references: [id])
@@index([userId])
}
model MarketData {
@ -84,6 +93,7 @@ model MarketData {
@@unique([dataSource, date, symbol])
@@index([dataSource])
@@index([date])
@@index([state])
@@index([symbol])
}
@ -108,6 +118,8 @@ model Order {
tags Tag[]
@@index([accountId])
@@index([isDraft])
@@index([userId])
}
model Platform {
@ -153,6 +165,11 @@ model SymbolProfile {
SymbolProfileOverrides SymbolProfileOverrides?
@@unique([dataSource, symbol])
@@index([assetClass])
@@index([dataSource])
@@index([isin])
@@index([name])
@@index([symbol])
}
model SymbolProfileOverrides {
@ -175,6 +192,8 @@ model Subscription {
updatedAt DateTime @updatedAt
userId String
User User @relation(fields: [userId], references: [id])
@@index([userId])
}
model Tag {
@ -200,6 +219,12 @@ model User {
Order Order[]
Settings Settings?
Subscription Subscription[]
@@index([accessToken])
@@index([createdAt])
@@index([provider])
@@index([role])
@@index([thirdPartyId])
}
enum AccessPermission {

Loading…
Cancel
Save