UUID v7 là gì?
Phiên bản UUID 7 là một định danh 128-bit có thứ tự thời gian được định nghĩa bởi RFC 9562, xuất bản vào tháng 5 năm 2024. Nó bao gồm:
- Dấu thời gian Unix: 48 bit thời gian Unix với độ chính xác mili giây
- Dữ liệu ngẫu nhiên: 74 bit dữ liệu ngẫu nhiên
- Các bit phiên bản và variant: 6 bit để nhận dạng định dạng
Ví dụ định dạng: 017f22e2-79b0-7cc3-98c4-dc0c0c07398f
Cách UUID v7 hoạt động
- Lấy dấu thời gian Unix hiện tại bằng mili giây (48 bit)
- Tạo 74 bit dữ liệu ngẫu nhiên mạnh về mặt mật mã
- Đặt các bit phiên bản thành 0111 (phiên bản 7)
- Đặt các bit variant thành 10 (theo chuẩn RFC 4122)
- Ghép lại thành 32 chữ số hex với dấu gạch ngang: định dạng 8-4-4-4-12
Ưu điểm & Những điều cần cân nhắc
| Advantages | Considerations |
|---|---|
|
|
Cấu trúc UUID v7
| Bits | Content |
|---|---|
| 0-47 | Dấu thời gian Unix (mili giây) |
| 48-51 | Phiên bản (0111 cho v7) |
| 52-63 | Dữ liệu ngẫu nhiên |
| 64-65 | Variant (10 theo RFC4122) |
| 66-127 | Dữ liệu ngẫu nhiên |
UUID v7 so với các phiên bản khác
| Version | Dựa trên | Trường hợp sử dụng | Privacy |
|---|---|---|---|
| UUID v1 | Thời gian + MAC | ID có thứ tự theo thời gian | ⚠️ Tiết lộ MAC |
| UUID v3 | Không gian tên + MD5 | ID xác định trước | ✅ Riêng tư |
| UUID v4 | Random | ID ngẫu nhiên an toàn | ✅ Riêng tư |
| UUID v5 | Không gian tên + SHA-1 | ID xác định trước | ✅ Riêng tư |
| UUID v6 | Thời gian (sắp xếp lại) | ID có thể sắp xếp | ⚠️ Tiết lộ MAC |
| UUID v7 | Thời gian + ngẫu nhiên | ID có thể sắp xếp | Nhúng thời gian sinh; không có địa chỉ MAC |
Các trường hợp sử dụng phổ biến
- Khóa chính cơ sở dữ liệu: Chỉ mục hiệu quả
- Hệ thống phân tán: Có thứ tự theo thời gian mà không cần phối hợp
- Ứng dụng hiện đại: Định danh tập trung vào quyền riêng tư
- Microservices: ID có thể sắp xếp giữa các dịch vụ
- Ghi nguồn sự kiện (Event sourcing): ID sự kiện theo thứ tự thời gian
- Kho dữ liệu: ID phân tích có thứ tự theo thời gian
Các câu hỏi thường gặp
Ưu điểm của UUID v7 so với v1 hoặc v6 là gì?
UUID v7 sử dụng dấu thời gian Unix tính theo mili giây và dữ liệu ngẫu nhiên thay vì địa chỉ MAC, mang lại bảo vệ quyền riêng tư đồng thời duy trì khả năng sắp xếp theo thời điểm tạo.
UUID v7 có phải là một tiêu chuẩn chính thức không?
Có. UUID v7 được định nghĩa bởi RFC 9562, xuất bản vào tháng 5 năm 2024.
Tôi có thể trích xuất thời gian tạo từ UUID v7 không?
Có. Dấu thời gian Unix theo mili giây có thể được trích xuất từ 48 bit đầu tiên và chuyển đổi sang datetime tiêu chuẩn.
UUID v7 có thể sắp xếp theo thời điểm tạo không?
Có. UUID v7 được thiết kế để có thể sắp xếp theo thứ tự từ điển, với dấu thời gian Unix ở các bit có ý nghĩa nhất, cho phép so sánh chuỗi trực tiếp khớp với thứ tự thời gian.
UUID v7 có lộ thông tin hệ thống nào không?
UUID v7 không nhúng địa chỉ MAC, nhưng 48 bit đầu tiên của nó tiết lộ dấu thời gian sinh theo mili giây. Hãy coi siêu dữ liệu thời gian này là có thể nhìn thấy đối với bất kỳ ai nhận được định danh.