UUID vs ULID

Compare UUIDs and ULIDs: randomness vs. sortable time-based IDs, database index friendliness, and which to choose for your identifiers.

UUIDs and ULIDs both generate globally unique identifiers, but they differ in one key way: ULIDs embed a sortable timestamp, while most UUIDs are effectively random. That single difference has real consequences for database performance.

UUID Generator

  • Universally supported by databases, libraries and APIs with no extra dependencies.
  • UUID v4 is fully random, so rows are scattered across a database index, hurting write performance.
  • Not sortable by creation time unless you use the newer v7 variant.
Open UUID Generator

ULID Generator

  • Encodes the creation timestamp in the first 48 bits, so IDs sort lexicographically in creation order.
  • Sortable IDs are friendly to B-tree indexes, avoiding random-insert slowdowns.
  • Uses Base32 (26 chars), slightly longer than a UUID's standard 36-character text form but shorter than a UUID's raw 16 bytes.
Open ULID Generator

Verdict

Choose UUID v4 for maximum compatibility, and ULID (or UUID v7) when you want time-ordered IDs that keep a database index healthy.