Что такое 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 идеальным для первичных ключей в базах данных, где важна последовательность вставки.