Web development

Prisma vs Drizzle: what actually changes

Prisma installs 291.3 MB, Drizzle 52.4 MB on the same machine: the difference sits in tooling and workflow, not in query speed.

Key points

  • A full Prisma 7.10.1 install takes 291.3 MB in 10,292 files; Drizzle 0.45.4 plus drizzle-kit takes 52.4 MB in 2,841 files.
  • On 1 November 2026 the prisma latest tag points at 8.0.0-rc.29 while @prisma/client stays at 7.10.1, so versions need pinning.
  • Drizzle generates no code: the model is TypeScript and queries look like SQL.
  • Neither library changes a query's execution plan; indexes matter more than the ORM.

Prisma and Drizzle solve the same problem from opposite directions: Prisma generates a typed client from a schema, Drizzle stays a thin layer over SQL. Installed on this machine on 1 November 2026, Prisma takes 291.3 MB in 10,292 files, Drizzle 52.4 MB in 2,841 files.

Two models, not two speeds

Prisma starts from schema.prisma: prisma generate produces a typed client, and the package carries the tools that read the schema. Drizzle describes tables in TypeScript and builds SQL with no code generation. The first moves work into the build, the second into the code you write. Both ship under the Apache 2.0 licence.

What sits inside the 291 MB

Inspecting node_modules on 1 November 2026 finds a 19.8 MB schema-engine-windows.exe, Studio files of 14.4 MB and 14.2 MB, an 8.3 MB pglite.wasm, and a separate WASM compiler for every database: 3.4 MB for SQL Server, 3.3 MB for PostgreSQL and CockroachDB, 3.2 MB for MySQL and SQLite. Most of the weight is tooling, not the code that runs queries at runtime.

npm view prisma dist-tags --json
npm view @prisma/client dist.unpackedSize
npm view drizzle-orm dist.unpackedSize

The latest tag trap

On 1 November 2026 npm view prisma dist-tags returns latest: 8.0.0-rc.29, a release candidate, while @prisma/client stays at 7.10.1. A plain npm install takes the candidate and pairs it with a client from another line. Pin both versions in the same commit and check them in CI: this is the kind of detail nobody sees until the build breaks.

Where Prisma costs

The cost is not in the query but in the loop: prisma generate runs after every schema change, engines download into every Docker image, and cold starts pay for loading the client. In exchange you get generated migrations, a fully typed client and a single file that describes the data model. The migration flow is covered in safe migrations in production.

Where Drizzle costs

Drizzle does not hide SQL: a partial join, a select of five columns out of twenty or a missing index stay visible, and reading them is your job. The package is small because it carries no tooling, so drizzle-kit generates the migration but you review it, and writing the code takes more decisions. People arriving from an object-mapping ORM feel extra work; people who know SQL feel control.

The limit of this measurement

I measured bytes, files and install time, not query speed. An honest performance comparison needs the same schema, the same indexes and the same driver, and the result depends more on the execution plan than on the ORM layer. The install-time gap, 14.9 s against 19.9 s, is dominated by the npm cache and says nothing about the product.

Where to start

    Frequently asked questions

    Is Prisma slower than Drizzle?

    That is not the variable that decides. Performance differences come from the execution plan and the indexes, not from the ORM layer; measuring it needs the same schema and the same driver. Choose on workflow and benchmark the queries that matter.

    Does Prisma 7 still ship a native query engine?

    The 7.10.1 install has no query engine binary. It carries a 19.8 MB schema engine, the Studio files and a WASM compiler per database at 3.2 to 3.4 MB. The weight stays, the shape changes.

    Does Drizzle work with PostgreSQL?

    Yes. Drizzle covers PostgreSQL, MySQL, SQLite and compatible drivers in a 10.5 MB unpacked package. The database does not change the model: you swap the dialect and the connection API.

    Should I pin Prisma versions?

    Yes. On 1 November 2026 the latest tag for prisma points at an 8.0.0 release candidate while the client stays at 7.10.1. Install both versions explicitly and verify the pair in CI.

    Which one for a new project?

    Drizzle if the team writes SQL and wants a small image; Prisma if you need generated migrations and one client. Write the same critical query in both before deciding, instead of comparing documentation.