Генератор UUID/ v4 · v7

Генерация UUID v4 (случайный) и UUID v7 (упорядоченный по времени) пакетно. Верхний регистр, формат без дефисов, копирование в один клик.

Количество:
5 × UUID v4
c5c88fe3-6af5-4c06-b7c8-d60b6e1de644
36bfc87b-eb8a-4aae-b68f-0e1f8dcbd138
c4c978fc-78b0-4d14-b2ac-1b0e5e70919e
8e9a0a05-79a0-4a2a-879d-1e60def3a9ab
6b37b191-dc05-4cd0-9aec-e852f255622a
UUID v4 использует 122 бита криптографической случайности. Вероятность коллизии при 1 триллионе UUID — ~10⁻¹⁵, фактически невозможно.

Этот инструмент решил вашу проблему?

Что такое UUID

UUID (Universally Unique Identifier) — это 128-битный全局ный уникальный идентификатор,通常 представляемый в виде 32 шестнадцатеричных символов, например `550e8400-e29b-41d4-a716-446655440000`. UUID v4生成ируется随机но с астрономически низкой вероятностью коллизии — нужно生成 103 триллиона UUID, чтобы вероятность дубликата составила 50%. Идеально подходит в качестве唯一ного первичного ключа в распределённых системах.

Отличия версий UUID

v1基于 временную метку и MAC-адрес (отслеживаемый), v3/v5基于 пространство имён и хеш (детерминированный), v4 — чисто随机ный (наиболее常见ный), v7 — с временной сортировкой +随机ный (новый标准, совмещает упорядоченность и随机ность). v4 — стандарт для日常ней разработки; v7 — идеален для первичных ключей баз данных, требующих хронологической сортировки.

Примеры кода

JavaScript / Node.js
// UUID v4 (browser & Node 19+)
const id = crypto.randomUUID();
// "110e8400-e29b-41d4-a716-446655440000"

// Node.js (< 19)
import { randomUUID } from "crypto";
const id = randomUUID();

// npm: uuid package
import { v4 as uuidv4, v7 as uuidv7 } from "uuid";
console.log(uuidv4());
console.log(uuidv7());
Python
import uuid

# UUID v4
print(uuid.uuid4())
# "a8098c1a-f86e-11da-bd1a-00112444be1e"

# UUID v5 (name-based, deterministic)
print(uuid.uuid5(uuid.NAMESPACE_DNS, "example.com"))

# As hex (no dashes)
print(uuid.uuid4().hex)
Go
// go get github.com/google/uuid
import "github.com/google/uuid"

// UUID v4
id := uuid.New()
fmt.Println(id.String())

// UUID v7 (google/uuid v1.6+)
id7, _ := uuid.NewV7()
fmt.Println(id7.String())
SQL
-- PostgreSQL
SELECT gen_random_uuid();          -- v4
INSERT INTO users (id, name)
  VALUES (gen_random_uuid(), 'Alice');

-- MySQL 8+
SELECT UUID();  -- v1 format
-- For v4: use application layer

-- SQLite (with extension or app)
SELECT lower(hex(randomblob(4))) || '-' ||
  lower(hex(randomblob(2))) || '-4' ||
  substr(lower(hex(randomblob(2))),2) || '-' ||
  substr('89ab', abs(random()) % 4 + 1, 1) ||
  substr(lower(hex(randomblob(2))),2) || '-' ||
  lower(hex(randomblob(6)));

Часто задаваемые вопросы

Что такое UUID?
UUID (Universally Unique Identifier) — это 128-битный идентификатор, обычно представленный в виде 32-символьной шестнадцатеричной строки в формате 8-4-4-4-12 (например, 550e8400-e29b-41d4-a716-446655440000). Определён в RFC 4122 и позволяет генерировать уникальные идентификаторы в распределённых системах без центральной координации.
В чём разница между UUID v4 и v7?
UUID v4 полностью случайный (122 бита), простой и универсально поддерживаемый. UUID v7 кодирует метку времени Unix в миллисекундах в первых 48 битах, что делает его естественно упорядоченным по времени. Строки базы данных можно сортировать по UUID для получения порядка создания с лучшей производительностью индексов B-tree. UUID v7 рекомендуется для новых проектов.
Какова вероятность коллизии UUID?
UUID v4 использует 122 бита случайности. Для достижения 50% вероятности коллизии потребуется сгенерировать ~2^61 (~2,3 квинтиллиона) UUID. Генерация миллионов в секунду на практике полностью безопасна для распределённых первичных ключей.
UUID или ULID — что лучше?
ULID (Universally Unique Lexicographically Sortable Identifier) похож на UUID v7 — упорядочен по времени — но использует кодировку Crockford base32 (26 символов, без дефисов), что делает его короче. UUID v7 — стандарт IETF с более широкой поддержкой экосистемы; ULID компактнее, когда предпочтительны короткие идентификаторы.
Как хранить UUID в базе данных?
PostgreSQL имеет нативный тип UUID. MySQL/MariaDB: BINARY(16) для компактного бинарного хранения или CHAR(36) для читаемости. MongoDB: BinData(3) или обычная строка. Всегда создавайте индексы на столбцах UUID, по которым выполняете запросы.
Почему UUID v7 обеспечивает лучшую производительность базы данных, чем v4?
Случайность UUID v4 вызывает случайные вставки в B-tree, что приводит к частым разделениям страниц и плохому использованию кэша. Временная упорядоченность UUID v7 означает, что новые строки добавляются в конец индекса, аналогично автоинкрементным ID — значительно лучшая производительность записи и коэффициент попадания в кэш для больших таблиц.