Какво е 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 идеален за първични ключове в бази данни, където е важна последователността на вмъкване.