Що таке UUID v7?
UUID версії 7 — це 128-бітний ідентифікатор (рядок із 36 символів), упорядкований за часом, запропонований у новому проєкті специфікації UUID. Він складається з:
- Unix-мітка часу: 48 бітів Unix-часу з точністю до мілісекунд
- Випадкові дані: 74 біти випадкових даних
- Біти версії та варіанту: 6 бітів для ідентифікації формату
Приклад формату: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Як працює UUID v7
- Отримати поточну Unix-мітку часу в мілісекундах (48 бітів)
- Згенерувати 74 біти криптографічно стійких випадкових даних
- Встановити біти версії як 0111 (версія 7)
- Встановити біти варіанту як 10 (стандарт RFC 4122)
- Зібрати як 32 шістнадцяткових цифри з дефісами: формат 8-4-4-4-12
Переваги та міркування
Переваги | Міркування |
---|---|
|
|
Структура UUID v7
Біти | Вміст |
---|---|
0-47 | Unix-мітка часу (мілісекунди) |
48-51 | Версія (0111 для v7) |
52-63 | Випадкові дані |
64-65 | Варіант (10 для RFC4122) |
66-127 | Випадкові дані |
UUID v7 у порівнянні з іншими версіями
Версія | Базується на | Випадок використання | Приватність |
---|---|---|---|
UUID v1 | Час + MAC | ID, впорядковані за часом | ⚠️ Розкриває MAC |
UUID v3 | Простір імен + MD5 | Детерміновані ID | ✅ Приватний |
UUID v4 | Випадковий | Безпечні випадкові ID | ✅ Приватний |
UUID v5 | Простір імен + SHA-1 | Детерміновані ID | ✅ Приватний |
UUID v6 | Час (переупорядкований) | Сортовані ID | ⚠️ Розкриває MAC |
UUID v7 | Час + випадковий | Сортовані ID | ✅ Приватний |
Поширені випадки використання
- Первинні ключі баз даних: Ефективні індекси
- Розподілені системи: Впорядковані за часом без координації
- Сучасні додатки: Ідентифікатори, орієнтовані на приватність
- Мікросервіси: Сортовані міжсервісні ID
- Event sourcing: Хронологічні ID подій
- Сховища даних: Впорядковані за часом аналітичні ID
Часті запитання
Яка перевага UUID v7 порівняно з v1 або v6?
UUID v7 використовує мілісекунди Unix-мітки часу та випадкові дані замість MAC-адрес, забезпечуючи захист приватності при збереженні можливості сортування за часом створення.
Чи є UUID v7 офіційним стандартом?
UUID v7 наразі є проєктом специфікації в запропонованому документі RFC 4122bis. Він ще не є офіційним стандартом RFC, але імплементований у багатьох бібліотеках UUID.
Чи можна витягти час створення з UUID v7?
Так. Unix-мітку часу в мілісекундах можна витягти з перших 48 бітів і перетворити на стандартний формат дати та часу.
Чи можна сортувати UUID v7 за часом створення?
Так. UUID v7 розроблено для лексикографічного сортування, з Unix-міткою часу в найбільш значущих бітах, що дозволяє пряме порівняння рядків для відповідності хронологічному порядку.
Чи розкриває UUID v7 будь-яку системну інформацію?
Ні. На відміну від v1/v6, UUID v7 не використовує MAC-адреси. Він поєднує мітку часу з випадковими даними, захищаючи приватність при збереженні можливості сортування.