DevFormat
Language
Back to blog
March 1, 2026

UUID v7 vs v4: Boosting Database Indexing Performance

Learn how time-sortable UUID v7 identifiers prevent B-Tree fragmentation and why your MySQL or PostgreSQL database needs them.

For decades, developers relied on UUID v4 for unique identifiers. However, as data scales, the "randomness" of v4 becomes a massive performance bottleneck. In 2026, the industry has shifted to UUID v7.

The Fatal Flaw of UUID v4

UUID v4 is entirely random. When used as a primary key in databases like PostgreSQL or MySQL, every new record is inserted into a random location in the B-Tree index. This causes:

  1. Index Fragmentation: The database must constantly move data blocks to make room for new entries.
  2. Cache Misses: Because data is scattered, the CPU can't effectively cache the "head" of the index.
  3. Write Amplification: Disk I/O spikes as the database struggles to reorganize the tree.

The Solution: Why UUID v7 is Sortable

UUID v7 includes a Unix Epoch timestamp in the first 48 bits. This makes the ID "time-sortable" (Lexicographically sortable).

When you use UUID v7, new records are always appended to the end of the index. This results in nearly 0% fragmentation and significantly faster write speeds, similar to a standard auto-incrementing integer but with the global uniqueness of a UUID.

Benchmarking the Difference

In high-concurrency environments, switching from v4 to v7 can reduce index size by up to 30% and improve insert performance by 2x.

Technical Spec:

  • Bits 0-47: Unix Timestamp (milliseconds)
  • Bits 48-51: Version (0111 for v7)
  • Remaining bits: Random entropy to prevent collisions.
Interactive Example
Local Execution
Generate 100 UUID v7s

Clicking will load this data into the tool locally.

Related Formatting Tool

Need to format your code right now? Use our secure tools.

Open JSON Formatter