Що таке UUID і як він працює
UUID (Universally Unique Identifier) — це стандартизований формат 128-бітного ідентифікатора, визначений у RFC 9562 (раніше RFC 4122). Головна ідея — можливість генерувати унікальні ідентифікатори на будь-якому пристрої, в будь-який момент, без необхідності перевіряти їх унікальність через центральний сервер.
Формат запису
UUID записується як 32 шістнадцяткових символи, розділених чотирма дефісами на п'ять груп: 8-4-4-4-12. Наприклад: 550e8400-e29b-41d4-a716-446655440000. Символ на позиції 13 вказує на версію (1–7), а перший символ четвертої групи визначає варіант (8, 9, a або b для стандартного UUID).
Чому UUID v4 найпопулярніший
UUID v4 використовує криптографічно стійкий генератор випадкових чисел (CSPRNG). Із 128 біт, 6 зарезервовані під версію та варіант, залишаючи 122 біти ентропії. Це дає 5.3 × 10^36 можливих комбінацій. UUID v4 не прив'язаний до часу чи обладнання, що забезпечує повну анонімність генерації.
UUID у базах даних
Використання UUID як первинного ключа має переваги: безпечне злиття даних із різних джерел, можливість генерації ID на клієнті без звернення до бази, відсутність інформації про порядок створення записів. Недоліки: більший розмір (16 байт проти 4–8 у INT), фрагментація індексу для v4. UUID v7 вирішує проблему фрагментації завдяки часовому префіксу.
UUID v7 — новий стандарт
UUID v7, стандартизований у RFC 9562 (2024), поєднує переваги UUID v1 (сортування за часом) і v4 (випадковість). Перші 48 біт — Unix-timestamp у мілісекундах, решта — випадкові. Це робить v7 ідеальним для первинних ключів у базах даних, де важлива послідовність вставки.