Co to jest UUID v7?
Wersja UUID 7 to uporządkowany czasowo 128-bitowy identyfikator (ciąg 36 znaków) zaproponowany w nowym projekcie specyfikacji UUID. Składa się z:
- Znacznik czasu Unix: 48 bitów precyzji czasu Unix w milisekundach
- Dane losowe: 74 bity danych losowych
- Bity wersji i wariantu: 6 bitów do identyfikacji formatu
Przykład formatu: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Jak działa UUID v7
- Pobierz aktualny znacznik czasu Unix w milisekundach (48 bitów)
- Wygeneruj 74 bity kryptograficznie silnych danych losowych
- Ustaw bity wersji na 0111 (wersja 7)
- Ustaw bity wariantu na 10 (standard RFC 4122)
- Złóż jako 32 cyfry szesnastkowe z myślnikami: format 8-4-4-4-12
Zalety i uwagi
Advantages | Considerations |
---|---|
|
|
Struktura UUID v7
Bits | Content |
---|---|
0-47 | Znacznik czasu Unix (milisekundy) |
48-51 | Wersja (0111 dla v7) |
52-63 | Dane losowe |
64-65 | Wariant (10 dla RFC4122) |
66-127 | Dane losowe |
UUID v7 a inne wersje
Version | Oparte na | Przypadek użycia | Privacy |
---|---|---|---|
UUID v1 | Czas + MAC | Identyfikatory uporządkowane czasowo | ⚠️ Ujawnia MAC |
UUID v3 | Namespace + MD5 | Identyfikatory deterministyczne | ✅ Prywatne |
UUID v4 | Random | Bezpieczne identyfikatory losowe | ✅ Prywatne |
UUID v5 | Namespace + SHA-1 | Identyfikatory deterministyczne | ✅ Prywatne |
UUID v6 | Czas (przearanżowany) | Identyfikatory sortowalne | ⚠️ Ujawnia MAC |
UUID v7 | Czas + losowe | Identyfikatory sortowalne | ✅ Prywatne |
Typowe przypadki użycia
- Klucze główne bazy danych: Wydajne indeksy
- Systemy rozproszone: Uporządkowane czasowo bez koordynacji
- Nowoczesne aplikacje: Identyfikatory skoncentrowane na prywatności
- Microservices: Sortowalne identyfikatory między usługami
- Event sourcing: Chronologiczne identyfikatory zdarzeń
- Magazynowanie danych: Uporządkowane czasowo identyfikatory analityczne
Najczęściej zadawane pytania
Jaka jest zaleta UUID v7 nad v1 lub v6?
UUID v7 używa znacznika czasu Unix w milisekundach i danych losowych zamiast adresów MAC, oferując ochronę prywatności przy zachowaniu sortowalności według czasu generacji.
Czy UUID v7 jest oficjalnym standardem?
UUID v7 jest obecnie projektem specyfikacji w proponowanym dokumencie RFC 4122bis. Nie jest jeszcze oficjalnym standardem RFC, ale jest implementowany w wielu bibliotekach UUID.
Czy mogę wyodrębnić czas utworzenia z UUID v7?
Tak. Znacznik czasu Unix w milisekundach można wyodrębnić z pierwszych 48 bitów i przekształcić na standardową datę i czas.
Czy UUID v7 są sortowalne według czasu utworzenia?
Tak. UUID v7 jest zaprojektowany tak, aby był sortowalny leksykograficznie, z znacznikiem czasu Unix w najbardziej znaczących bitach, co pozwala na bezpośrednie porównanie ciągów znaków zgodne z kolejnością chronologiczną.
Czy UUID v7 ujawnia jakieś informacje o systemie?
Nie. W przeciwieństwie do v1/v6, UUID v7 nie używa adresów MAC. Łączy znacznik czasu z danymi losowymi, chroniąc prywatność przy zachowaniu sortowalności.