Skip to content

Latest commit

 

History

History
49 lines (39 loc) · 1.33 KB

File metadata and controls

49 lines (39 loc) · 1.33 KB
title impact impactDescription tags
Prefer Select Over Include in Prisma Queries
HIGH
Reduces data transfer and improves query performance
prisma, database, performance, security

Prefer Select Over Include in Prisma Queries

Impact: HIGH (Reduces data transfer and improves query performance)

Using select instead of include in Prisma queries fetches only the fields you need, improving performance and preventing accidental exposure of sensitive data.

Incorrect (using include fetches all fields):

const booking = await prisma.booking.findFirst({
  include: {
    user: true, // This gets ALL user fields including sensitive ones
  }
});

Correct (using select for specific fields):

const booking = await prisma.booking.findFirst({
  select: {
    id: true,
    title: true,
    user: {
      select: {
        id: true,
        name: true,
        email: true,
      }
    }
  }
});

Benefits:

  • Performance: Smaller payloads, faster queries
  • Security: Prevents accidental exposure of sensitive fields (e.g., credential.key)
  • Clarity: Makes data requirements explicit

Exception: Use include only when you genuinely need all fields from a relation, which is rare.

Reference: Cal.com Engineering Standards