developer · ids · random identifiers

Генератор UUID, ULID и Nano ID онлайн

Создавай UUID v4, UUID v7, ULID и Nano ID для API, баз данных, тестов, моков, логов и backend-задач. Генерация идёт локально в браузере через crypto.getRandomValues. Сервер не видит идентификаторы, а значит хотя бы здесь мир не сломан.

Настройки генерации

Генерация идёт локально в браузере.

Результат

ТипUUID v4
Количество0
Длина первого0
ФорматLines

Для backend и API

UUID и ULID удобно использовать для request ID, user ID, order ID, correlation ID, mock data и технических сущностей.

Для баз данных

UUID v7 и ULID лучше подходят там, где важна сортировка по времени. UUID v4 остаётся хорошим случайным вариантом.

Приватность

Все ID создаются прямо в браузере и не отправляются на сервер. Даже у случайных строк есть право не быть слитыми.

Какой идентификатор выбрать

Все четыре формата решают одну задачу — дать записи уникальный номер, который можно сгенерировать где угодно, не спрашивая разрешения у базы. Разница в том, как они устроены внутри и что с ними происходит при росте нагрузки.

ФорматДлинаСортируется по времениКогда брать
UUID v436 символовнетуниверсальный выбор, когда порядок не важен
UUID v736 символовдапервичные ключи в базе, события, логи
ULID26 символовдато же, что v7, но компактнее и без дефисов
Nano ID21 символнеткороткие ссылки, публичные идентификаторы

Почему v7 лучше v4 для ключей в базе

UUID v4 состоит из случайных чисел, и это его главный недостаток внутри базы данных. Новые записи попадают в случайные места индекса, страницы индекса приходится постоянно перестраивать, и на больших таблицах вставка заметно замедляется.

UUID v7 начинается с метки времени. Идентификаторы, созданные подряд, оказываются рядом и в индексе: вставка идёт в конец, как у обычного автоинкремента, но при этом ключ по-прежнему можно сгенерировать на клиенте. Плюс бесплатный бонус — записи сортируются по времени создания без отдельного поля.

Подробный разбор с замерами — в статье UUIDv7 против UUIDv4 в качестве ключей базы.

Устройство UUID

Стандартный вид — xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx: 32 шестнадцатеричных знака и четыре дефиса. Позиция M хранит номер версии, N — вариант стандарта. Именно поэтому у случайного UUID v4 четырнадцатая позиция всегда равна четвёрке: это не совпадение, а зашитый в формат признак.

Хватит ли уникальности

UUID v4 содержит 122 случайных бита. Вероятность совпадения настолько мала, что на практике ею пренебрегают: чтобы шанс коллизии дошёл до одного процента, нужно сгенерировать порядка трёх квинтиллионов значений. Nano ID из 21 символа при генерации тысячи идентификаторов в секунду достигнет сопоставимого риска примерно за сто тысяч лет.

Важнее другое: уникальность обеспечивает качественный источник случайности. Этот генератор использует криптографический генератор браузера, а не обычный Math.random().

Чего не стоит делать

Приватность

Идентификаторы генерируются в браузере и никуда не отправляются: сервер не знает, что вы создали. Для ключей, которые уйдут в продакшен, это принципиально.

FAQ

Что такое UUID?

UUID — универсальный уникальный идентификатор. Его часто используют в backend, базах данных, API и логах.

Чем UUID v4 отличается от UUID v7?

UUID v4 случайный. UUID v7 содержит timestamp, поэтому лучше сортируется по времени создания.

Что такое ULID?

ULID — сортируемый уникальный идентификатор из timestamp и случайной части. Он компактный и хорошо подходит для URL.

Данные отправляются на сервер?

Нет. Генерация выполняется локально в браузере через криптографический генератор случайных чисел.

Чем UUID v7 отличается от v4?

v4 состоит из случайных чисел, а v7 начинается с метки времени. Поэтому идентификаторы v7 сортируются по времени создания и ложатся в конец индекса базы, не заставляя её перестраивать страницы при каждой вставке.

Что выбрать: UUID, ULID или Nano ID?

Для ключей в базе — UUID v7 или ULID, они сортируются по времени. Для публичных коротких ссылок — Nano ID: он вдвое короче. UUID v4 остаётся универсальным вариантом, когда порядок не важен.

Могут ли два UUID совпасть?

Практически нет. В UUID v4 122 случайных бита: чтобы вероятность совпадения дошла до одного процента, нужно сгенерировать порядка трёх квинтиллионов значений.