# 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.

> Page: https://ui.eneawork.it/blog/prisma-vs-drizzle
> Markdown: https://ui.eneawork.it/blog/prisma-vs-drizzle.md

*2026-11-01*

Prisma e Drizzle risolvono lo stesso problema con due strategie opposte: Prisma genera un client tipizzato da uno schema, Drizzle resta un livello sottile sopra SQL. Installati su questa macchina il 1 novembre 2026, Prisma pesa 291,3 MB in 10.292 file, Drizzle 52,4 MB in 2.841 file.

Due directory vuote, stesso giorno, Node 24.15.0 e npm 11.12.1: npm install prisma@7.10.1 @prisma/client@7.10.1 ha prodotto 291,3 MB in 14,9 s, npm install drizzle-orm@0.45.4 drizzle-kit@0.31.11 52,4 MB in 19,9 s. I file sono 10.292 contro 2.841. Il catalogo EneUI conta 111.985 componenti, 1.556 blocchi e 12.808 icone da 1.472 librerie, misurati su /api/stats il 1 novembre 2026. Il tempo non segue il peso: la cache npm e il download degli engine lo rendono rumore.

## Due modelli, non due velocità

Prisma parte da schema.prisma: prisma generate produce un client tipizzato e il pacchetto porta con sé gli strumenti che leggono lo schema. Drizzle descrive le tabelle in TypeScript e costruisce SQL senza generazione di codice. Il primo sposta il lavoro nella build, il secondo nel codice che scrivi. Entrambi sono distribuiti con licenza Apache 2.0.

## Cosa c'è dentro i 291 MB

L'ispezione di node_modules del 1 novembre 2026 trova uno schema-engine-windows.exe da 19,8 MB, i file di Studio da 14,4 MB e 14,2 MB, pglite.wasm da 8,3 MB e un compilatore WASM separato per ogni database: 3,4 MB per SQL Server, 3,3 MB per PostgreSQL e CockroachDB, 3,2 MB per MySQL e SQLite. La maggior parte del peso è tooling, non il codice che esegue le query a runtime.

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

## La trappola del tag latest

Il 1 novembre 2026 npm view prisma dist-tags restituisce latest: 8.0.0-rc.29, una release candidate, mentre @prisma/client resta a 7.10.1. Un npm install senza versione prende la candidate e affianca un client di un'altra linea. Fissa le due versioni nello stesso commit e verificale in CI: è il tipo di dettaglio che non si vede finché la build non si rompe.

## Dove Prisma costa

Il costo non è nella query ma nel ciclo: prisma generate va eseguito dopo ogni modifica allo schema, gli engine vanno scaricati in ogni immagine Docker e l'avvio a freddo paga il caricamento del client. In cambio ottieni migrazioni generate, un client con tipi completi e un solo file da leggere per capire il modello dati. Il flusso di migrazione è descritto in migrazioni sicure in produzione.

## Dove Drizzle costa

Drizzle non nasconde SQL: un join parziale, un select con cinque colonne su venti o un indice mancante restano visibili, e sta a te saperli leggere. Il pacchetto è piccolo perché non porta tooling, quindi la migrazione la genera drizzle-kit ma la revisioni tu, e scrivere il codice richiede più decisioni. Chi arriva da un ORM a oggetti lo percepisce come lavoro in più; chi conosce SQL lo percepisce come controllo.

## Il limite di questa misura

Ho misurato byte, file e tempo di installazione, non la velocità delle query. Un confronto onesto sulle prestazioni richiede lo stesso schema, gli stessi indici e lo stesso driver, e il risultato dipende più dal piano di esecuzione che dal livello ORM. La differenza di tempo fra i due install, 14,9 s contro 19,9 s, è dominata dalla cache npm e non dice nulla sul prodotto.

## Da dove partire

Scegli Drizzle se il team legge SQL e vuole pochi megabyte nell'immagine: drizzle-orm dichiara 10,5 MB di pacchetto scompattato nel registro.,Scegli Prisma se servono migrazioni generate e un client con tipi completi da uno schema unico.,Blocca le versioni: prisma e @prisma/client devono stare sulla stessa linea.,Per la parte visibile dell'API, le tabelle e i blocchi dashboard di shadcn/ui coprono i casi comuni.,Se il confine è fra server action e rotta HTTP, leggi server actions e API; per le transazioni, ACID in pratica.

## FAQ

### Prisma è più lento di Drizzle?

Non è la variabile che decide. La differenza di prestazioni nasce dal piano di esecuzione e dagli indici, non dal livello ORM; servono lo stesso schema e lo stesso driver per misurarla. Scegli sul flusso di lavoro e misura le query che contano.

### Prisma 7 usa ancora un query engine nativo?

Nell'installazione 7.10.1 non c'è un binario del query engine. Ci sono un motore di schema da 19,8 MB, i file di Studio e un compilatore WASM per ogni database, da 3,2 a 3,4 MB. Il peso resta, cambia la forma.

### Drizzle funziona con PostgreSQL?

Sì. Drizzle copre PostgreSQL, MySQL, SQLite e i driver compatibili, con un pacchetto da 10,5 MB scompattati. La scelta del database non cambia il modello: cambi il dialetto e le API di connessione.

### Devo fissare le versioni di Prisma?

Sì. Il 1 novembre 2026 il tag latest di prisma punta a una release candidate 8.0.0 mentre il client resta a 7.10.1. Installa le due versioni in modo esplicito e verifica la coppia in CI.

### Quale scegliere per un progetto nuovo?

Drizzle se il team scrive SQL e vuole un'immagine piccola; Prisma se servono migrazioni generate e un client unico. Scrivi la stessa query critica in entrambi prima di decidere, invece di confrontare la documentazione.
