Query Performance
Hello, I wonder if there's any way to disable the extra SELECT queries made during updates.
For example: This is the query I'm using to update a player.
I see the following queries in the debug log:
Why is it making all those extra SELECT queries rather than just updating? I'm worried it might impact performance as we scale.
For example: This is the query I'm using to update a player.
await tx.player.update({
where: { user_id: state.player1_id },
select: { id: true },
data: {
gold: { increment: player_gold },
platinum: { decrement: attemptCost },
potions: {
updateMany: usedPotions.map((potion) => ({
where: {
potion_id: potion.potion.id,
player_id: state.player1_id,
},
data: {
quantity: potion.quantity,
},
})),
},
},
});await tx.player.update({
where: { user_id: state.player1_id },
select: { id: true },
data: {
gold: { increment: player_gold },
platinum: { decrement: attemptCost },
potions: {
updateMany: usedPotions.map((potion) => ({
where: {
potion_id: potion.potion.id,
player_id: state.player1_id,
},
data: {
quantity: potion.quantity,
},
})),
},
},
});I see the following queries in the debug log:
api-1 | prisma:query UPDATE "public"."player_potions" SET "quantity" = $1 WHERE ("public"."player_potions"."id" IN ($2) AND 1=1)
api-1 | prisma:query SELECT "public"."player_potions"."id", "public"."player_potions"."player_id" FROM "public"."player_potions" WHERE (("public"."player_potions"."potion_id" = $1 AND "public"."player_potions"."player_id" = $2) AND "public"."player_potions"."player_id" IN ($3)) OFFSET $4
api-1 | prisma:query UPDATE "public"."player_potions" SET "quantity" = $1 WHERE ("public"."player_potions"."id" IN ($2) AND 1=1)
api-1 | prisma:query SELECT "public"."player_potions"."id", "public"."player_potions"."player_id" FROM "public"."player_potions" WHERE (("public"."player_potions"."potion_id" = $1 AND "public"."player_potions"."player_id" = $2) AND "public"."player_potions"."player_id" IN ($3)) OFFSET $4
api-1 | prisma:query UPDATE "public"."player_potions" SET "quantity" = $1 WHERE ("public"."player_potions"."id" IN ($2) AND 1=1)api-1 | prisma:query UPDATE "public"."player_potions" SET "quantity" = $1 WHERE ("public"."player_potions"."id" IN ($2) AND 1=1)
api-1 | prisma:query SELECT "public"."player_potions"."id", "public"."player_potions"."player_id" FROM "public"."player_potions" WHERE (("public"."player_potions"."potion_id" = $1 AND "public"."player_potions"."player_id" = $2) AND "public"."player_potions"."player_id" IN ($3)) OFFSET $4
api-1 | prisma:query UPDATE "public"."player_potions" SET "quantity" = $1 WHERE ("public"."player_potions"."id" IN ($2) AND 1=1)
api-1 | prisma:query SELECT "public"."player_potions"."id", "public"."player_potions"."player_id" FROM "public"."player_potions" WHERE (("public"."player_potions"."potion_id" = $1 AND "public"."player_potions"."player_id" = $2) AND "public"."player_potions"."player_id" IN ($3)) OFFSET $4
api-1 | prisma:query UPDATE "public"."player_potions" SET "quantity" = $1 WHERE ("public"."player_potions"."id" IN ($2) AND 1=1)Why is it making all those extra SELECT queries rather than just updating? I'm worried it might impact performance as we scale.