Генератор UUID

Создаёт UUID шести видов: случайный v4, упорядоченный по времени v7, v1, повторяемые v5 и v3 из имени и нулевой. Разбирает чужой UUID: версия, время создания, узел. Считается в браузере.

Что такое UUID

UUID — 128-битный идентификатор, который записывают 36 знаками через дефисы. Главное его свойство: значение создаётся где угодно, хоть на телефоне без сети, и почти наверняка не совпадёт с созданным в другом месте.

Поэтому общий счётчик не нужен: за следующим номером не нужно идти в базу, и две системы могут заводить записи независимо.

Версии с первой по пятую описаны в RFC 4122, версии 6, 7 и 8 добавил RFC 9562. Инструмент собирает значения по этим правилам прямо в браузере.

Какую версию брать

  • v4 — случайные биты, обычный выбор для идентификаторов записей;
  • v7 — первые 48 бит заняты временем, значения идут по возрастанию: это то, что кладут в первичные ключи новых баз;
  • v1 — время и узел, нужен, когда его требует старая система;
  • v5 и v3 — считаются от пространства имён и имени, поэтому одно и то же имя всегда даёт один и тот же UUID;
  • нулевой — значение из одних нулей, означает «идентификатора нет».

Почему случайный ключ вредит базе

Индекс — дерево, отсортированное по значению ключа. Случайный UUID попадает в случайное место дерева: страницы делятся, кэш вымывается, вставка идёт медленнее с ростом таблицы.

У v7 старшие биты — время, поэтому новые записи ложатся в конец индекса, как обычный автоинкремент. Сортировка строк при этом совпадает с порядком создания.

Разбор чужого UUID

Вставьте значение из лога или из базы во второе поле. Инструмент покажет версию и вариант, а для версий 1 и 7 достанет время создания с точностью до миллисекунды и переведёт его в дату.

Для версии 1 видно ещё и узел. Если это настоящий MAC-адрес, инструмент об этом скажет: такое значение выдаёт машину, на которой его создали. Наш генератор MAC не берёт — узел собирается случайным, как разрешает стандарт.

Чего UUID не делает

Он не заменяет проверку прав: угадать чужой v4 нельзя, но v1 и v7 предсказуемы по времени, и полагаться на «никто не подберёт ссылку» не стоит. Он не сортируется по времени — кроме v7 и v6. И он не короткий: 36 знаков в адресе и в индексе занимают заметно больше места, чем целое число.

Другие инструменты