Sviluppo web
Prisma vs Drizzle: cosa cambia davvero
Prisma pesa 291,3 MB installati, Drizzle 52,4 MB: la differenza è nel tooling e nel flusso di lavoro, non nella velocità delle query.
In sintesi
- L'installazione completa di Prisma 7.10.1 pesa 291,3 MB in 10.292 file; Drizzle 0.45.4 più drizzle-kit ne pesa 52,4 MB in 2.841 file.
- Il 1 novembre 2026 il tag latest di prisma punta a 8.0.0-rc.29 mentre @prisma/client resta a 7.10.1: le versioni vanno fissate.
- Drizzle non genera codice: il modello è TypeScript e le query assomigliano a SQL.
- Nessuno dei due cambia il piano di esecuzione di una query: gli indici contano più dell'ORM.
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 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
Domande frequenti
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.