ULID Generator

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.

ULID: 48-bit millisecond timestamp + 80-bit random, Crockford Base32. Lexicographically sortable.

Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand ULID Generator

Erzeugt ULIDs – 26 Zeichen lange Bezeichner, deren führende Zeichen die Entstehungszeit kodieren, sodass sie sich als reiner Text chronologisch sortieren.

How it works

Eine ULID hat 128 Bit: einen 48-Bit-Millisekunden-Zeitstempel gefolgt von 80 Zufallsbits, geschrieben in Crockford Base32 als 10 Zeitstempelzeichen und 16 Zufallszeichen. Da diese Kodierung die Ordnung erhält, sortiert das Sortieren der Zeichenketten nach Entstehungszeit, und genau das macht ULIDs als Datenbankschlüssel günstig – neue Zeilen hängen sich ans Ende des Index, statt sich darüber zu verteilen. Das Alphabet lässt I, L, O und U weg, damit das Abschreiben eindeutig bleibt.

When to use it

  • Primärschlüssel für eine Tabelle, in der Sie zeitliche Ordnung ohne eine zentrale Sequenz möchten.
  • IDs für Events, Logs oder Nachrichten, die Sie später zeitlich als Bereich durchsuchen wollen.
  • IDs, die unabhängig auf mehreren Diensten entstehen und sich trotzdem gemeinsam sortieren müssen.
  • Überall dort, wo Sie zu UUID v4 greifen würden, Ihnen die Indexlokalität aber wichtig ist.
  • Bezeichner, die ein Mensch womöglich vom Bildschirm ablesen muss, wo das eingeschränkte Alphabet hilft.

Watch out for

  • Die Sortierbarkeit reicht nur so weit wie die Uhr. Der monotone Modus hält einen Stapel innerhalb einer Millisekunde geordnet, indem er den Zufallsanteil hochzählt, aber zwei auf verschiedenen Rechnern erzeugte ULIDs werden nach den Uhren dieser Rechner geordnet – wenige Millisekunden Abweichung kehren ihre Reihenfolge also um.
  • Die Entstehungszeit ist öffentlich. Die ersten 10 Zeichen dekodieren direkt zu einem Millisekunden-Zeitstempel zurück, wer eine ULID besitzt, weiß also, wann der Datensatz angelegt wurde.
  • Crockford Base32 unterscheidet auf dem Papier keine Groß- und Kleinschreibung, ein Datenbankindex, der rohe Bytes vergleicht, aber schon. Dieses Tool gibt immer Großbuchstaben aus; speichern Sie durchgängig eine Schreibweise, sonst überraschen Sie Sortierung und Gleichheit.
  • Der Zufallsanteil umfasst 80 Bit gegenüber den 122 in einer UUID v4, was nur innerhalb einer einzelnen Millisekunde zählt – es bedeutet aber, dass eine ULID die schwächere Wahl ist, wo die ID nicht erratbar sein darf.

Frequently Asked Questions

Warum ist ULID für Datenbank-Primärschlüssel besser als UUID v4?

UUID v4 ist zufällig und verursacht damit Einfügungen an zufälligen Stellen des B-Baum-Index und im großen Maßstab starke Index-Fragmentierung. ULID ist zeitlich geordnet – neue Datensätze werden immer am Ende des Index eingefügt, genau wie bei Auto-Increment-Ganzzahlen, dabei aber global eindeutig.

Was ist der monotone Modus bei ULID?

Fallen mehrere ULIDs in dieselbe Millisekunde, erhöht der monotone Modus den vorherigen Zufallsanteil um eins, statt neue Zufallsbits zu ziehen. Das garantiert eine strenge lexikografische Ordnung innerhalb einer Millisekunde, was rein zufällige ULIDs nicht leisten. Dieser Generator nutzt den monotonen Modus standardmäßig, wenn Sie eine Charge anfordern.

Ist ULID unabhängig von der Groß- und Kleinschreibung?

Ja – ULID nutzt Crockford Base32 (0-9, A-Z ohne I, L, O, U), das von Haus aus keine Groß- und Kleinschreibung unterscheidet. 01AN4Z07BY ist dasselbe wie 01an4z07by. Das Alphabet vermeidet außerdem optisch verwechselbare Zeichen.

How to Use ULID Generator

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.