Що таке UUID v7?
UUID версії 7 це впорядкований за часом 128-бітний ідентифікатор, визначений у RFC 9562, опублікованому в травні 2024 року. Він складається з:
- 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
Переваги та зауваження
| Advantages | Considerations |
|---|---|
|
|
Структура UUID v7
| Bits | Content |
|---|---|
| 0-47 | Unix-таймштамп (мілісекунди) |
| 48-51 | Версія (0111 для v7) |
| 52-63 | Випадкові дані |
| 64-65 | Варіант (10 для RFC4122) |
| 66-127 | Випадкові дані |
UUID v7 порівняно з іншими версіями
| Version | На основі | Сценарій використання | Privacy |
|---|---|---|---|
| UUID v1 | Час + MAC | Ідентифікатори, впорядковані за часом | ⚠️ Розкриває MAC |
| UUID v3 | Простір імен + MD5 | Детерміновані ідентифікатори | ✅ Приватні |
| UUID v4 | Random | Безпечні випадкові ідентифікатори | ✅ Приватні |
| UUID v5 | Простір імен + SHA-1 | Детерміновані ідентифікатори | ✅ Приватні |
| UUID v6 | Час (перепорядкований) | Ідентифікатори, що сортуються | ⚠️ Розкриває MAC |
| UUID v7 | Час + випадкові дані | Ідентифікатори, що сортуються | Вбудовує час генерації; без MAC-адреси |
Поширені випадки використання
- Первинні ключі в базі даних: Ефективні індекси
- Розподілені системи: Впорядковані за часом без координації
- Сучасні застосунки: Ідентифікатори з орієнтацією на конфіденційність
- Microservices: Сортувані ідентифікатори між сервісами
- Event sourcing: Хронологічні ідентифікатори подій
- Сховище даних (Data warehousing): Аналітичні ідентифікатори, впорядковані за часом
Поширені запитання
Яка перевага UUID v7 порівняно з v1 або v6?
UUID v7 використовує Unix-таймштамп у мілісекундах і випадкові дані замість MAC-адрес, забезпечуючи захист конфіденційності та зберігаючи можливість сортування за часом генерації.
Чи є UUID v7 офіційним стандартом?
Так. UUID v7 визначено в RFC 9562, опублікованому в травні 2024 року.
Чи можу я витягти час створення з UUID v7?
Так. Unix-таймштамп у мілісекундах можна витягти з перших 48 бітів і конвертувати у стандартний datetime.
Чи відсортовані UUID v7 за часом створення?
Так. UUID v7 спроектовано так, щоб він був лексикографічно сортуваним: Unix-таймштамп займає найбільш значущі біти, що дозволяє порівняння рядків відповідати хронологічному порядку.
Чи розкриває UUID v7 якусь системну інформацію?
UUID v7 не містить вбудованої MAC-адреси, але його перші 48 біт показують таймштамп генерації в мілісекундах. Слід вважати, що ці часові метадані видимі будь-кому, хто отримує ідентифікатор.