Що робить цей інструмент
Цей інструмент генерує ULID у вашому браузері. ULID — це 128-бітний ідентифікатор, як і UUID, але він записується 26 символами й сортується за часом створення. Тому ULID добре підходять для первинних ключів бази даних, ID подій і записів журналу, назв файлів і всього іншого, що ви хочете показувати в порядку створення без окремого стовпця з позначкою часу.
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, що сортуються за часом створення, наприклад як ключі бази даних чи ID записів журналу. Використовуйте UUID v4, коли ID не повинен розкривати час свого створення. UUID v7 — стандартна альтернатива, яка також упорядкована за часом.
› Що робить монотонний режим?
ID, створені в ту саму мілісекунду, зазвичай отримують незалежні випадкові частини, тож їхній порядок у межах цієї мілісекунди випадковий. У монотонному режимі випадкова частина натомість збільшується на одиницю, тож кожен ID у партії сортується строго після попереднього.
› Чи генеруються ID безпечно?
Так. Випадкова частина береться з криптографічного генератора випадкових чисел браузера, і нічого не надсилається на сервер.