Co to jest UUID v7?
UUID wersja 7 to uporządkowany czasowo 128-bitowy identyfikator zdefiniowany w RFC 9562, opublikowany w maju 2024 r. Składa się z:
- Znacznik czasu Unix: 48 bitów znacznika czasu Unix z precyzją do milisekundy
- 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 bieżący 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 zgodny z RFC 4122) |
| 66-127 | Dane losowe |
UUID v7 a inne wersje
| Version | Oparte na | Zastosowanie | Privacy |
|---|---|---|---|
| UUID v1 | Czas + MAC | Identyfikatory uporządkowane czasowo | ⚠️ Ujawnia adres MAC |
| UUID v3 | Przestrzeń nazw + MD5 | Deterministyczne identyfikatory | ✅ Prywatne |
| UUID v4 | Random | Bezpieczne losowe identyfikatory | ✅ Prywatne |
| UUID v5 | Przestrzeń nazw + SHA-1 | Deterministyczne identyfikatory | ✅ Prywatne |
| UUID v6 | Czas (przeorganizowany) | Sortowalne identyfikatory | ⚠️ Ujawnia adres MAC |
| UUID v7 | Czas + losowe | Sortowalne identyfikatory | Zawiera czas generacji; bez adresu MAC |
Typowe zastosowania
- Klucze główne bazy danych: Wydajne indeksy
- Systemy rozproszone: Uporządkowane czasowo bez koordynacji
- Nowoczesne aplikacje: Identyfikatory zorientowane na prywatność
- Microservices: Sortowalne identyfikatory między usługami
- Event sourcing: Chronologiczne identyfikatory zdarzeń
- Hurtownie danych: Identyfikatory analityczne uporządkowane czasowo
Najczęściej zadawane pytania
Jaką przewagę ma UUID v7 nad v1 lub v6?
UUID v7 używa milisekundowego znacznika czasu Unix i danych losowych zamiast adresów MAC, oferując ochronę prywatności przy zachowaniu możliwości sortowania według czasu generowania.
Czy UUID v7 to oficjalny standard?
Tak. UUID v7 jest zdefiniowany w RFC 9562, opublikowanym w maju 2024 r.
Czy mogę wydobyć czas utworzenia z UUID v7?
Tak. Znacznik czasu Unix w milisekundach można wydobyć z pierwszych 48 bitów i przekonwertować na standardową datę i godzinę.
Czy UUID v7 można sortować według czasu utworzenia?
Tak. UUID v7 jest zaprojektowany jako sortowalny leksykograficznie, z znacznikiem czasu Unix w najbardziej znaczących bitach, co pozwala na bezpośrednie porównanie łańcuchów w kolejności chronologicznej.
Czy UUID v7 ujawnia jakieś informacje o systemie?
UUID v7 nie osadza adresu MAC, ale jego pierwsze 48 bitów ujawnia znacznik czasu generacji w milisekundach. Traktuj te metadane czasowe jako widoczne dla każdego, kto otrzyma identyfikator.