Cosa fa
Questo strumento genera ULID nel tuo browser. Un ULID è un identificatore a 128 bit, come un UUID, ma è scritto con 26 caratteri e si ordina in base al momento in cui è stato creato. Per questo i ULID sono adatti come chiavi primarie di database, ID di eventi e log, nomi di file e qualsiasi altra cosa tu voglia elencare in ordine di creazione senza una colonna timestamp separata.
Un ULID ha due parti:
- Timestamp (primi 10 caratteri): millisecondi dall’epoch Unix, 48 bit. Basta fino all’anno 10889.
- Casualità (ultimi 16 caratteri): 80 bit dal generatore crittografico di numeri casuali del browser.
I ULID usano l’alfabeto Base32 di Crockford 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Esclude I, L, O e U, così gli ID sono facili da leggere ad alta voce e difficili da digitare male, e non contiene caratteri che richiedono l’escape negli URL.
Come si usa
- Scegli quanti ID ti servono, da 1 a 1000.
- Attiva Monotono se gli ID devono mantenere l’ordine anche quando ne vengono creati diversi nello stesso millisecondo. In quel caso la parte casuale viene incrementata di uno per ogni nuovo ID.
- Attiva Minuscolo se il tuo sistema memorizza gli ID in minuscolo. I ULID non distinguono tra maiuscole e minuscole, e la forma canonica è in maiuscolo.
- Copia l’elenco o scaricalo come file di testo. Premi di nuovo Genera per un nuovo gruppo.
Esempio
01ARZ3NDEKTSV4RRFFQ69G5FAV
Qui 01ARZ3NDEK è il timestamp 1469922850259 (2016-07-30 23:54:10.259 UTC) e TSV4RRFFQ69G5FAV è la parte casuale. Due ULID creati a un secondo di distanza condividono i primi caratteri, ed è per questo che un semplice ordinamento di stringhe li mette in ordine cronologico.
ULID a confronto con UUID
Un UUID v4 casuale distribuisce le nuove righe in tutto l’indice B-tree, il che rallenta gli inserimenti sulle tabelle grandi. I ULID sono quasi sempre crescenti, quindi le nuove righe finiscono in fondo all’indice, come con un intero auto-increment, pur restando unici tra macchine diverse senza coordinamento. Il compromesso è che un ULID rivela approssimativamente quando è stato creato. Se questo è un problema, usa un UUID v4.
Domande frequenti
› Che cos'è un ULID?
Un ULID (Universally Unique Lexicographically Sortable Identifier) è un ID a 128 bit scritto come 26 caratteri Base32 di Crockford. I primi 10 caratteri codificano un timestamp in millisecondi e gli ultimi 16 sono casuali.
› ULID o UUID: quale dovrei usare?
Usa un ULID quando vuoi ID ordinabili per data di creazione, ad esempio come chiavi di database o ID di log. Usa UUID v4 quando l'ID non deve rivelare quando è stato creato. UUID v7 è un'alternativa standard anch'essa ordinata per tempo.
› Cosa fa la modalità monotona?
Gli ID creati nello stesso millisecondo normalmente ricevono parti casuali indipendenti, quindi il loro ordine all'interno di quel millisecondo è casuale. In modalità monotona la parte casuale viene invece incrementata di uno, così ogni ID del gruppo viene ordinato strettamente dopo il precedente.
› Gli ID vengono generati in modo sicuro?
Sì. La parte casuale proviene dal generatore crittografico di numeri casuali del browser, e nulla viene inviato a un server.