Co robi to narzędzie
To narzędzie generuje ULID-y w twojej przeglądarce. ULID to 128-bitowy identyfikator, podobnie jak UUID, ale zapisywany jako 26 znaków i sortujący się według czasu utworzenia. Dzięki temu ULID-y dobrze sprawdzają się jako klucze główne w bazie danych, identyfikatory zdarzeń i logów, nazwy plików i wszystko inne, co chcesz wyświetlać w kolejności tworzenia bez osobnej kolumny ze znacznikiem czasu.
ULID składa się z dwóch części:
- Znacznik czasu (pierwsze 10 znaków): milisekundy od epoki Unix, 48 bitów. Wystarcza do roku 10889.
- Losowość (ostatnie 16 znaków): 80 bitów z kryptograficznego generatora liczb losowych przeglądarki.
ULID-y używają alfabetu Crockford Base32 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Pomija on I, L, O i U, aby identyfikatory łatwo było czytać na głos i trudno było się w nich pomylić, i nie zawiera znaków wymagających escapowania w URL-ach.
Jak używać
- Wybierz, ile identyfikatorów potrzebujesz, od 1 do 1000.
- Włącz Monotoniczne, jeśli identyfikatory muszą zachować kolejność, nawet gdy kilka powstaje w tej samej milisekundzie. Część losowa jest wtedy zwiększana o jeden dla każdego nowego ID.
- Włącz Małe litery, jeśli twój system przechowuje identyfikatory małymi literami. ULID-y nie rozróżniają wielkości liter, a postacią kanoniczną są wielkie litery.
- Skopiuj listę lub pobierz ją jako plik tekstowy. Naciśnij ponownie Generuj, aby dostać nową partię.
Przykład
01ARZ3NDEKTSV4RRFFQ69G5FAV
Tutaj 01ARZ3NDEK to znacznik czasu 1469922850259 (2016-07-30 23:54:10.259 UTC), a TSV4RRFFQ69G5FAV to część losowa. Dwa ULID-y utworzone w odstępie sekundy mają wspólnych kilka pierwszych znaków, dlatego zwykłe sortowanie napisów układa je w kolejności czasowej.
ULID a UUID
Losowy UUID v4 rozrzuca nowe wiersze po całym indeksie B-drzewa, co spowalnia wstawianie do dużych tabel. ULID-y w większości rosną, więc nowe wiersze trafiają na koniec indeksu, tak jak przy liczbie całkowitej z autoinkrementacją, a jednocześnie pozostają unikalne między maszynami bez żadnej koordynacji. Ceną jest to, że ULID zdradza w przybliżeniu, kiedy powstał. Jeśli to ma znaczenie, użyj UUID v4.
FAQ
› Czym jest ULID?
ULID (Universally Unique Lexicographically Sortable Identifier) to 128-bitowy identyfikator zapisywany jako 26 znaków w alfabecie Crockford Base32. Pierwsze 10 znaków koduje znacznik czasu w milisekundach, a ostatnie 16 jest losowych.
› ULID czy UUID: którego użyć?
Użyj ULID, gdy chcesz identyfikatorów sortujących się według czasu utworzenia, np. jako kluczy w bazie danych lub ID w logach. Użyj UUID v4, gdy identyfikator nie może zdradzać, kiedy powstał. UUID v7 to standardowa alternatywa, która również jest uporządkowana czasowo.
› Co robi tryb monotoniczny?
Identyfikatory utworzone w tej samej milisekundzie normalnie dostają niezależne części losowe, więc ich kolejność w obrębie tej milisekundy jest przypadkowa. W trybie monotonicznym część losowa jest zamiast tego zwiększana o jeden, więc każdy ID w partii sortuje się ściśle po poprzednim.
› Czy identyfikatory są generowane bezpiecznie?
Tak. Część losowa pochodzi z kryptograficznego generatora liczb losowych przeglądarki i nic nie jest wysyłane na serwer.