Что такое UUID и когда его использовать
Коротко про uuid v4 — когда брать, чем отличается от инкрементальных ID и почему уникальность гарантирована.
Что это за штука
UUID (Universally Unique Identifier) — стандарт 128-битных идентификаторов, описанный в RFC 4122. Главная идея: сгенерировать уникальный ID, не спрашивая ни у кого разрешения. Два разных компьютера в разных концах света, не общаясь, получат идентификаторы, которые гарантированно не совпадут.
Версии UUID
Их 5 штук, но в реальной жизни встречаются две:
- v4 — полностью случайный. Используется в 99% случаев. Именно его генерирует
crypto.randomUUID(). - v7 — свежий стандарт (2024), включает временную метку. Сортируется по времени создания, что удобно для индексов в БД.
Почему не автоинкремент
Автоинкрементный ID (1, 2, 3...) требует, чтобы база знала последний номер. В распределённых системах это превращается в узкое место: каждая вставка — запрос к центральному координатору. UUID генерируется на клиенте, без координации, и сразу годится для вставки.
Плюс — UUID непредсказуем: зная URL /order/42, можно попробовать открыть /order/43. С UUID такой фокус не проходит.
Где применяется
- Идентификаторы записей в распределённых базах
- Ключи в событийных шинах (Kafka, RabbitMQ)
- Токены активации, инвайт-ссылки
- Имена файлов для загрузок
- Session ID
Про уникальность
Вероятность совпадения двух случайных UUID v4 так мала, что даже если генерировать миллиард штук в секунду в течение 100 лет, вероятность коллизии остаётся пренебрежимо малой. На практике считается, что коллизий не бывает.
Генератор UUID создаёт до 500 штук за раз через браузерныйcrypto.randomUUID, с опциями регистра и без дефисов.