TIL: Các phiên bản UUID và thời điểm sử dụng
(ntietz.com)-
Các phiên bản UUID khác nhau
- UUID Version 1 (v1): được tạo từ dấu thời gian, bộ đếm đơn điệu và địa chỉ MAC
- UUID Version 2 (v2): được dành riêng cho security ID. Chưa có nhiều thông tin chi tiết được biết đến
- UUID Version 3 (v3): được tạo từ hàm băm MD5 của dữ liệu được cung cấp. DNS và URL được đề xuất là dữ liệu đầu vào ứng viên
- UUID Version 4 (v4): được tạo từ dữ liệu hoàn toàn ngẫu nhiên. Đây là kiểu UUID mà đa số mọi người vẫn nghĩ tới
- UUID Version 5 (v5): được tạo từ hàm băm SHA1 của dữ liệu được cung cấp. Tương tự v3, DNS và URL được đề xuất là dữ liệu đầu vào ứng viên
- UUID Version 6 (v6): được tạo từ dấu thời gian, bộ đếm đơn điệu và địa chỉ MAC. Dùng cùng loại dữ liệu như v1 nhưng thứ tự được thay đổi để có thể sắp xếp theo thời gian tạo
- UUID Version 7 (v7): được tạo từ dấu thời gian và dữ liệu ngẫu nhiên
- UUID Version 8 (v8): có thể được người dùng tự định nghĩa hoàn toàn (trừ các trường version/variant bắt buộc)
-
Thời điểm sử dụng
- v4: dùng khi cần ID ngẫu nhiên. Là lựa chọn mặc định tốt
- v7: dùng khi cần sắp xếp. Ví dụ, phù hợp khi dùng làm khóa cơ sở dữ liệu
- v5 hoặc v8: dùng khi muốn đưa dữ liệu đặc thù vào UUID. Khi cần, bạn sẽ tự nhận ra
-
Giải thích về các phiên bản khác
- v7 là phiên bản cải tiến của v1 và v6, nên nếu có thể thì nên dùng v7. Vì vậy v1 và v6 thường không được dùng
- v2 được dành riêng cho các mục đích liên quan đến bảo mật. Nếu bạn đang dùng nó thì có lẽ bạn sẽ không thể biết nhiều chi tiết
- v3 đã được thay thế bởi v5. v5 dùng hàm băm mạnh hơn
Tóm tắt của GN⁺
- UUID có nhiều phiên bản khác nhau và mỗi phiên bản được thiết kế cho một mục đích cụ thể
- v4 và v7 là hai phiên bản được dùng phổ biến nhất, còn v5 và v8 được dùng khi có yêu cầu dữ liệu cụ thể
- Việc chọn phiên bản UUID phụ thuộc vào mục đích sử dụng; nếu cần sắp xếp thì nên dùng v7, còn nếu cần ID ngẫu nhiên thì nên dùng v4
- Hiểu rõ các phiên bản UUID khác nhau sẽ giúp bạn chọn được UUID phù hợp cho dự án
1 bình luận
Ý kiến Hacker News
UUID Version 2 (v2) được dành riêng cho ID bảo mật, nhưng thông tin chi tiết về nó không được biết đến nhiều
Chi tiết của UUID v2 có thể dễ dàng tìm thấy trong tài liệu RFC 9562
Dấu thời gian của UUID v7 hữu ích để tìm nhanh các tệp metadata trong Databend
Giá mà có một tiêu chuẩn cho UUID ngắn
73WakrfVbNJBaAmhQtEeDvhoặcbK7nP9xMKhó hiểu được mục đích của UUID2
UUID v4 về cơ bản chỉ là bộ sinh byte ngẫu nhiên
Tốt nhất là không nên dùng các phiên bản dựa trên MAC
UUID dùng dữ liệu SHA256 và bộ đếm có thể hữu ích
Nên dùng v7
Đây là một bài đọc thú vị