Генератор UUID · форматUUID v7 — генератор и как он устроен

Седьмая версия начинается с времени создания в миллисекундах, дальше идут 74 случайных бита. Поэтому значения сортируются в порядке создания и вставляются в конец индекса — это и сделало v7 рекомендуемым первичным ключом. Стандартизована в RFC 9562 в 2024 году.

01Генератор02Устройство03Сравнение04Вопросы05Похожие
01

Генератор UUID v7

формат выбран — все настройки и проверка в полном генераторе
Количество
Регистр
Нажмите «Сгенерировать» — здесь появятся идентификаторы.
Все форматы, проверка и разбор UUID — в полном генераторе →
02

Как устроен: UUID v7

Образец017f22e2-79b0-7cc3-98c4-dc0c0c07398f
017f22e2-79b0
Unix-время в мс: 22.02.2022 19:22:22 UTC
7
версия: всегда 7
cc3
12 бит rand_a — случайные или счётчик
9
вариант RFC и 2 первых бита rand_b
8c4-dc0c0c07398f
ещё 60 бит rand_b — случайные

Когда применять

  • Первичный ключ большой таблицы: вставки идут в конец индекса, страницы не дробятся.
  • Идентификатор событий и журналов, которые удобно сортировать по самому ID.
  • Замена v1 и v6, когда нужно время внутри, но без адреса машины.

Чем отличается от соседей

Против v4: v7 упорядочен и бережёт индекс, но выдаёт момент создания с точностью до миллисекунды — для публичных ссылок это может быть лишним. Против ULID: оба сортируются по времени и устроены почти одинаково (48 бит времени впереди), но v7 — стандарт RFC и ложится в колонку uuid, а ULID короче в записи — 26 знаков вместо 36. Наш генератор в пачке монотонен: внутри миллисекунды случайная часть растёт на единицу.

03

Сравнение форматов

ФорматДлинаСлучайностьВремя внутриСортируетсяСтандарт
UUID v436122 битанетнетRFC 9562
UUID v73674 битамс, 48 битдаRFC 9562
UUID v136узел и счётчик100 нс, 60 битнетRFC 9562, устаревший
Nil UUID36нетнет—RFC 9562
NanoID21126 битнетнетбиблиотека, не RFC
ULID2680 битмс, 48 битдаспецификация ULID, не RFC
04

Частые вопросы

Первые двенадцать шестнадцатеричных цифр, без дефиса, — это Unix-время в миллисекундах. Переведите их в десятичное число и получите момент создания: 017f22e279b0 — это 22 февраля 2022 года, 19:22:22 UTC. Поле «Проверка» на странице генератора делает это само и показывает дату, время и сколько дней прошло с создания идентификатора.

Обновлено

«» добавлен в избранное