Какво е UUID v7?

UUID v7 е най-новата версия на универсално уникалните идентификатори, дефинирана в RFC 9562. За разлика от по-старите версии като UUID v4 (изцяло случаен) или UUID v1 (използва MAC адрес), UUID v7 вгражда 48-битов Unix Epoch времеви отпечатък в милисекунди директно в идентификатора. Това прави стойностите на UUID v7 естествено сортируеми по време на създаване — значително предимство при индексиране на бази данни, разпределени системи и регистриране на събития, където хронологичният ред е от значение.

Тъй като UUID v7 не включва MAC адреси, той избягва проблемите с поверителността, свързани с UUID v1. Останалите битове след времевия отпечатък и полетата за версия/вариант се запълват със случайни или монотонни данни, което гарантира уникалност дори когато множество UUID-та се генерират в рамките на една и съща милисекунда.

Как е конструиран UUID v7

UUID v7 се състои от 128 бита, организирани по следния начин:

  • Битове 0–47: 48-битов беззнаков Unix Epoch времеви отпечатък в милисекунди с голям ред на байтовете
  • Битове 48–51: 4-битово поле за версия, зададено на 0111 (7)
  • Битове 52–63: 12 бита случайни или монотонни данни за прецизност под милисекунда или уникалност
  • Битове 64–65: 2-битово поле за вариант, зададено на 10 (RFC 9562)
  • Битове 66–127: 62 бита случайни или монотонни данни за допълнителна уникалност

Тази структура означава, че UUID-та, генерирани по-късно във времето, винаги ще се сортират след по-ранните на ниво милисекунда, което ги прави идеални като първични ключове в бази данни с B-tree индексиране.

Описание на инструмента

Този генератор на UUID v7 създава UUID от версия 7, съответстващи на RFC 9562, с визуална разбивка на вградения времеви отпечатък. Генерирайте един или до 100 UUID наведнъж, превключвайте между форматиране с главни и малки букви и изберете дали да включите тирета. Инструментът също така извлича и показва вградения Unix Epoch времеви отпечатък от първия генериран UUID, позволявайки ви да проверите времето на създаване, кодирано във всеки идентификатор.

Примери

Формат Примерен резултат
Стандартен 019544a2-3b4c-7d8e-9f01-2a3b4c5d6e7f
Главни букви 019544A2-3B4C-7D8E-9F01-2A3B4C5D6E7F
Без тирета 019544a23b4c7d8e9f012a3b4c5d6e7f

Функции

  • Групово генериране: Генерирайте от 1 до 100 стойности на UUID v7 наведнъж с плъзгач за количество
  • Превключване на главни букви: Превключвайте между изход с малки и главни букви
  • Превключване на тирета: Включвайте или премахвайте тирета за компактни формати
  • Извличане на времеви отпечатък: Автоматично показва вградения Unix Epoch времеви отпечатък от генерирания UUID
  • Поддръжка на изтегляне: Експортирайте генерираните UUID-та като текстов файл за групова употреба

Случаи на употреба

  • Генерирайте сортируеми по време първични ключове за бази данни в голям мащаб, където производителността при вмъкване и локалността имат значение
  • Създавайте монотонно нарастващи идентификатори за разпределени системи за поточно предаване на събития като Kafka или Pulsar
  • Заменете UUID v4 в приложения, които се нуждаят от хронологично наредждане без отделна колона за времеви отпечатък

UUID v7 спрямо други версии

Версия Базиран на време Сортируем Безопасен за поверителност Случайност
v1 Да Не Не (използва MAC) Ниска
v4 Не Не Да Висока
v6 Да Да Не (използва MAC) Ниска
v7 Да Да Да Средна

UUID v7 съчетава най-добрите качества: сортируемост, базирана на времето, без излагане на хардуерни идентификатори, с достатъчно случайност за предотвратяване на колизии в разпределени възли.

Обяснение на опциите

  • Количество (1–100): Колко стойности на UUID v7 да се генерират в една партида. Всички UUID-та в партидата споделят приблизително един и същ времеви отпечатък, но се различават по случайните си битове.
  • Главни букви: Когато е активирано, извежда UUID-та с главни hex символи (A–F вместо a–f).
  • Тирета: Когато е активирано (по подразбиране), UUID-тата включват стандартното групиране с тирета 8-4-4-4-12. Деактивирайте за компактен hex низ от 32 символа.

Често задавани въпроси

Може ли UUID v7 да предизвика колизии? Колизиите са изключително малко вероятни. Дори в рамките на една и съща милисекунда, 74-те бита случайни/монотонни данни осигуряват над 18 квинтилиона възможни комбинации. Библиотеката uuid също използва монотонни броячи, за да гарантира уникалност в рамките на един процес.

Съвместим ли е UUID v7 с UUID v4? Да. UUID v7 следва същия 128-битов формат 8-4-4-4-12 и е валиден навсякъде, където се приемат UUID-та. Съществуващите колони за UUID, парсъри и валидатори работят без модификация.

Кога трябва да използвам UUID v7 вместо UUID v4? Използвайте UUID v7, когато вашият случай на употреба се възползва от ключове, наредени по време — например като първични ключове в бази данни, където производителността на B-tree индекса се подобрява при последователни вмъквания. Използвайте UUID v4, когато наредждането е без значение и искате максимална случайност.