Что делает инструмент
Этот инструмент генерирует ULID прямо в браузере. ULID — это 128-битный идентификатор, как и UUID, но он записывается 26 символами и сортируется по времени создания. Поэтому ULID хорошо подходят для первичных ключей в базах данных, идентификаторов событий и логов, имён файлов и всего остального, что нужно выводить в порядке создания без отдельного столбца с меткой времени.
ULID состоит из двух частей:
- Метка времени (первые 10 символов): миллисекунды с начала эпохи Unix, 48 бит. Её хватит до 10889 года.
- Случайная часть (последние 16 символов): 80 бит из криптографического генератора случайных чисел браузера.
ULID используют алфавит Crockford Base32 0123456789ABCDEFGHJKMNPQRSTVWXYZ. В нём нет букв I, L, O и U, поэтому ID легко читать вслух и трудно набрать с ошибкой, и в нём нет символов, которые нужно экранировать в URL.
Как пользоваться
- Выберите, сколько ID нужно: от 1 до 1000.
- Включите Монотонные, если ID должны сохранять порядок, даже когда несколько из них созданы в одну миллисекунду. Тогда случайная часть увеличивается на единицу для каждого нового ID.
- Включите Строчные буквы, если ваша система хранит ID в нижнем регистре. ULID не зависят от регистра, а каноническая форма — в верхнем регистре.
- Скопируйте список или скачайте его как текстовый файл. Сгенерируйте ещё раз, чтобы получить новую партию.
Пример
01ARZ3NDEKTSV4RRFFQ69G5FAV
Здесь 01ARZ3NDEK — метка времени 1469922850259 (2016-07-30 23:54:10.259 UTC), а TSV4RRFFQ69G5FAV — случайная часть. У двух ULID, созданных с разницей в секунду, совпадают первые несколько символов, поэтому обычная сортировка строк расставляет их в порядке времени.
Сравнение ULID и UUID
Случайный UUID v4 разбрасывает новые строки по всему B-tree-индексу, что замедляет вставку в больших таблицах. ULID в основном возрастают, поэтому новые строки попадают в конец индекса, как и с автоинкрементным целым числом, и при этом остаются уникальными на разных машинах без какой-либо координации. Цена — ULID примерно раскрывает время своего создания. Если это важно, используйте UUID v4.
Частые вопросы
› Что такое ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) — это 128-битный идентификатор, записанный 26 символами Crockford Base32. Первые 10 символов кодируют метку времени в миллисекундах, а последние 16 — случайные.
› ULID или UUID: что выбрать?
Используйте ULID, если нужны ID, сортируемые по времени создания, например ключи в базе данных или идентификаторы логов. Используйте UUID v4, если ID не должен раскрывать время своего создания. UUID v7 — стандартная альтернатива, которая тоже упорядочена по времени.
› Что делает монотонный режим?
ID, созданные в одну и ту же миллисекунду, обычно получают независимые случайные части, поэтому их порядок внутри этой миллисекунды случаен. В монотонном режиме случайная часть вместо этого увеличивается на единицу, так что каждый ID в партии при сортировке идёт строго после предыдущего.
› Безопасно ли генерируются ID?
Да. Случайная часть берётся из криптографического генератора случайных чисел браузера, и ничего не отправляется на сервер.