🆔
← Torna alle guide

UUID v4 vs UUID v7 — Quale dovresti usare?

· Tag: uuid-v7, uuid-v4, rfc-9562, database, primary-key

UUID v7, standardizzato nella RFC 9562 (maggio 2024), risolve il principale punto debole di UUID v4: le scarse prestazioni degli indici del database.

UUID v4 (Casuale)

UUID v4 utilizza 122 bit casuali e 6 bit fissi. Ciò garantisce l'unicità senza bisogno di coordinamento, ma produce ID distribuiti casualmente nel tempo. Quando viene usato come chiave primaria B-tree in un database, gli ID casuali causano la suddivisione delle pagine e la frammentazione degli indici, riducendo le prestazioni di scrittura.

UUID v7 (Ordinato nel tempo)

UUID v7 utilizza un timestamp Unix in millisecondi a 48 bit seguito da bit casuali. Il prefisso timestamp rende gli UUID naturalmente ordinabili in base al momento di creazione, risolvendo il problema della frammentazione dei B-tree. Le chiavi restano globalmente uniche e possono essere generate senza coordinamento.

Confronto

| | UUID v4 | UUID v7 | |---|---------|---------| | Standard | RFC 9562 | RFC 9562 | | Ordinabile | No | Sì (in base al tempo) | | Prestazioni DB | Scarse | Buone | | Unico | Sì | Sì | | Espone il timestamp | No | Sì (precisione al millisecondo) |

Raccomandazione: usa UUID v7 per le chiavi primarie dei database e UUID v4 quando non vuoi esplicitamente rivelare il momento di creazione. Provali entrambi nel nostro generatore di UUID.

UUID v4 vs UUID v7 — Quale dovresti usare? - CoolTool