UUID v6 là gì?
Một UUID v6 sắp xếp lại bố cục bit của v1: 60 bit thời gian lên đầu, tiếp theo là bit phiên bản và biến thể, sau cùng là thông tin nút. Kết quả là giá trị giữ đúng thứ tự thời gian khi so sánh dưới dạng chuỗi.
Bố cục này khiến việc so sánh UUID như chuỗi tương đương với so sánh thời gian. Điều đó đặc biệt quan trọng với chỉ mục B-tree: tình trạng tách trang do khóa ngẫu nhiên giảm đi đáng kể.
Cách sử dụng
- Chọn số lượng định danh cần tạo (1 đến 1000).
- Bật chữ hoa hoặc ngoặc nhọn nếu cần.
- Bấm Tạo; danh sách sẽ tăng dần theo thứ tự tạo.
Dùng để làm gì
- Khóa chính được truy vấn theo thứ tự thời gian.
- Giảm phân mảnh chỉ mục khi ghi với lưu lượng lớn.
- Định danh tuần tự trong nhật ký sự kiện hoặc sổ ghi.
UUID v6 đứng ở đâu
| Lựa chọn | Khi nào dùng |
|---|---|
v6 | Thời gian ở đầu: sắp xếp được, mang dữ liệu như v1 |
v7 | Mili giây Unix; đơn giản hơn cho thiết kế mới |
v1 | Cùng dữ liệu nhưng ở bố cục không sắp xếp được |
Các phiên bản UUID trong một bảng
| Phiên bản | Sắp xếp được | Dựa trên | Dùng cho |
|---|---|---|---|
| v1 | Không | Dấu thời gian + địa chỉ MAC | Hệ thống cũ vẫn còn phụ thuộc v1 |
| v3 | Không | Băm MD5 của một tên | Định danh tất định khi buộc phải dùng MD5 |
| v4 | Không | 122 bit ngẫu nhiên | Hầu hết mọi định danh thông dụng |
| v5 | Không | Băm SHA-1 của một tên | Khi cùng một tên phải luôn ra cùng một định danh |
| v6 | Có | Dấu thời gian đã đảo thứ tự | Định danh sắp xếp được mà vẫn giữ độ ngẫu nhiên |
| v7 | Có | Thời gian Unix theo mili giây | Khóa chính trong cơ sở dữ liệu và định danh sự kiện |
| v8 | Không | Bố cục bit của riêng bạn | Định dạng tùy biến hoặc thử nghiệm |
Cả bảy phiên bản đều dài 128 bit và được viết theo cùng dạng 8-4-4-4-12. Điều khác nhau chỉ là ý nghĩa của các bit.
Câu hỏi thường gặp
Nên chọn v6 hay v7?
Cả hai đều sắp theo thời gian. v7 dùng mili giây Unix và dễ triển khai hơn; v6 được thiết kế cho hệ thống tương thích v1 cần độ phân giải 100 nano giây cùng trường nút.
v6 có mất hết tính ngẫu nhiên không?
Không. Sau dấu thời gian và trường nút vẫn có các bit ngẫu nhiên, nhờ đó các giá trị tạo trong cùng một mili giây cũng khác nhau.
Số phiên bản 6 từ đâu ra?
RFC 9562 định nghĩa nó. Bố cục bit của v1 gây vấn đề về sắp xếp, nên v6 được thêm vào như một bản sửa mà không phá vỡ tương thích ngược.