Генератор UUID
Создайте один или сотни уникальных идентификаторов UUID для баз данных, API и тестов.
Всё считается в вашем браузере: введённые данные никуда не отправляются.
Что такое UUID
UUID (Universally Unique Identifier), в мире Microsoft — GUID, — это 128-битный идентификатор, записываемый как 32 шестнадцатеричные цифры в пяти группах: 550e8400-e29b-41d4-a716-446655440000. Его можно создавать на любом устройстве без центрального сервера и без риска совпадений. Поэтому UUID используют как первичные ключи в базах данных, идентификаторы заказов и запросов, имена файлов и ключи идемпотентности в API.
Версии
- Версия 4 — 122 случайных бита. Самый распространённый вариант. Вероятность совпадения ничтожна: чтобы получить дубликат с шансом 50%, нужно создать около 2,7 квинтиллиона идентификаторов.
- Версия 1 — время с точностью до 100 наносекунд плюс идентификатор узла. Такие UUID упорядочены по времени создания. Исторически в них попадал MAC-адрес сетевой карты, что раскрывало устройство; здесь вместо него используется случайное значение, как разрешает стандарт RFC 9562.
Цифра версии видна в самом идентификаторе — это первый символ третьей группы: xxxxxxxx-xxxx-4xxx-….
UUID в базах данных
Случайные UUID v4 в качестве первичного ключа равномерно разбрасывают записи по индексу, и на больших таблицах вставка замедляется. Если важен порядок, рассмотрите UUID v7 — он начинается с метки времени — или храните UUID в двоичном виде (16 байт), а не строкой. В PostgreSQL для этого есть тип uuid, в MySQL — BINARY(16).
Частые вопросы
Чем GUID отличается от UUID?
Ничем по сути: GUID — название UUID в продуктах Microsoft. Иногда GUID записывают заглавными буквами в фигурных скобках — такой формат тоже можно выбрать.
Могут ли два UUID v4 совпасть?
Теоретически да, практически — нет: вероятность пренебрежимо мала даже при миллиардах идентификаторов. Генератор использует криптографически стойкий источник случайности.
Как создать UUID в коде?
JavaScript: crypto.randomUUID(). Python: uuid.uuid4(). PostgreSQL: gen_random_uuid(). Linux: uuidgen.