Об этом инструменте
UUID (Universally Unique Identifier) — это 128-битное значение, записываемое как 32 шестнадцатеричные цифры в канонической раскладке 8-4-4-4-12. Этот генератор создаёт UUID версии 4, которые заполняют 122 бита криптографически случайными данными из Web Crypto API, и UUID версии 7 из RFC 9562, которые добавляют в начало 48-битную метку времени Unix в миллисекундах в формате big-endian перед случайными битами, чтобы идентификаторы сортировались хронологически. Оба вручную задают свои биты версии и варианта согласно спецификации.
Используйте его для первичных ключей базы данных, идентификаторов корреляции и запросов, ключей идемпотентности или тестовых данных. Выбирайте v7, когда вам нужны сортируемые по времени ключи, которые сохраняют B-tree индексы компактными и избегают перетасовки от расщепления страниц, вызываемой случайными ключами v4; выбирайте v4, когда вам нужна только уникальность без сигнала упорядочивания. Генерируйте до 500 за раз, копируйте их как список, разделённый переводами строк, и включайте вывод в верхнем регистре, без дефисов или в кавычках, чтобы вставлять прямо в SQL, JSON или код.
Каждый UUID генерируется в вашем браузере с помощью crypto.getRandomValues — ни один не отправляется на сервер и не записывается им в журнал.
Часто задаваемые вопросы
В чём разница между UUID v4 и UUID v7?
v4 полностью случаен (122 случайных бита), поэтому значения непредсказуемы, но неупорядочены. v7 начинается с 48-битной метки времени Unix в миллисекундах, за которой следуют случайные биты, поэтому значения, сгенерированные позже, сортируются после более ранних — полезно для ключей базы данных, которые эффективно индексируются.
Гарантируется ли уникальность значений UUID v4?
Не гарантируется, но вероятность коллизии ничтожно мала: при 122 случайных битах вам пришлось бы сгенерировать миллиарды UUID, прежде чем дубликат станет статистически вероятным. На практике они считаются уникальными.
Безопасно ли использовать UUID v7 в качестве первичного ключа базы данных?
Да, и для этой цели он часто лучше v4. Поскольку v7 упорядочен по времени, последовательные вставки добавляются в конец B-tree индекса вместо разброса по нему, что снижает расщепление страниц и сохраняет индексы более компактными.