Generator UUID FAQ
Generowanie losowych UUID (v4)
Czym jest UUID?
UUID (Universally Unique Identifier) to 128-bitowy numer używany do jednoznacznego identyfikowania informacji w systemach komputerowych. Jest wyświetlany jako 36 znaków w formacie 8-4-4-4-12: 550e8400-e29b-41d4-a716-446655440000. UUID są praktycznie gwarantowane jako unikalne, pozwalając na rozproszone generowanie bez koordynacji.
Jaka jest różnica między UUID a GUID?
UUID i GUID są zasadniczo tym samym — 128-bitowe unikalne identyfikatory. 'UUID' jest terminem standardowym, podczas gdy 'GUID' (Globally Unique Identifier) jest używany przez Microsoft. Są kompatybilne i wymienne. W nowoczesnym użyciu 'UUID' jest bardziej powszechny.
Która wersja UUID powinienem używać?
Dla większości aplikacji używaj UUID v4 (losowe) — to najbezpieczniejszy i najprostszy wybór. Jeśli potrzebujesz chronologicznego sortowania w bazach danych, rozważ UUID v7 (nowe) lub v1 (starsze). Dla deterministycznego generowania (te same wejścia = ten sam UUID) używaj UUID v5. Dla większości przypadków użycia v4 jest odpowiednie.
Czy UUID mogą kolidować?
Teoretycznie tak, ale praktycznie nie. Przestrzeń UUID jest tak ogromna (2^128 możliwych wartości), że prawdopodobieństwo kolizji jest niezwykle małe. Musiałbyś generować miliardy UUID na sekundę przez dziesięciolecia, aby mieć znaczącą szansę na kolizję. Dla wszystkich praktycznych celów UUID są unikalne.
Czy UUID są bezpieczne do użycia jako tokeny bezpieczeństwa?
UUID v4 (losowe) są nieprzewidywalne i odpowiednie dla wielu tokenów bezpieczeństwa (tokeny sesji, tokeny resetowania). Jednak dla wysoce wrażliwych zastosowań kryptograficznych używaj dedykowanych funkcji generowania bezpiecznych tokenów. Unikaj UUID v1, ponieważ zawierają przewidywalne znaczniki czasu i informacje o maszynie.
Jak powinienem przechowywać UUID w bazach danych?
Przechowuj UUID w formacie binarnym BINARY(16) dla najlepszej wydajności i oszczędności miejsca (16 bajtów vs 36 znaków). Postgres ma natywny typ UUID, którego powinieneś używać. MySQL: używaj BINARY(16) z UUID_TO_BIN() i BIN_TO_UUID(). MongoDB: przechowuj jako BinData podtyp 4. Unikaj przechowywania jako zwykłych ciągów CHAR(36), chyba że to konieczne.
Przewodnik
Generuj losowe identyfikatory UUID v4. Obsługuje masowe generowanie wielu UUID jednocześnie.
UUID vs Auto-Increment ID
Wybór między UUID a tradycyjnymi auto-increment ID jest fundamentalną decyzją projektową bazy danych. Każde podejście ma wyraźne zalety i kompromisy. Ten przewodnik pomaga podjąć świadomą decyzję.