UUID v4 so với UUID v7 — Bạn Nên Sử dụng Phiên bản Nào?
UUID v7, được tiêu chuẩn hóa trong RFC 9562 (tháng 5 năm 2024), giải quyết điểm yếu chính của UUID v4: hiệu suất chỉ mục cơ sở dữ liệu kém.
UUID v4 (Ngẫu nhiên)
UUID v4 sử dụng 122 bit ngẫu nhiên và 6 bit cố định. Điều này đảm bảo tính duy nhất mà không cần phối hợp nhưng tạo ra các ID phân tán ngẫu nhiên theo thời gian. Khi được sử dụng làm khóa chính B-tree trong cơ sở dữ liệu, các ID ngẫu nhiên gây ra phân tách trang và phân mảnh chỉ mục, làm giảm hiệu suất ghi.
UUID v7 (Sắp xếp theo Thời gian)
UUID v7 sử dụng dấu thời gian Unix mili giây 48 bit theo sau là các bit ngẫu nhiên. Tiền tố dấu thời gian làm cho UUID có thể sắp xếp tự nhiên theo thời gian tạo, giải quyết vấn đề phân mảnh B-tree. Các khóa vẫn duy nhất toàn cầu và có thể được tạo mà không cần phối hợp.
So sánh
| | UUID v4 | UUID v7 | |---|---------|---------| | Tiêu chuẩn | RFC 9562 | RFC 9562 | | Có thể sắp xếp | Không | Có (theo thời gian) | | Hiệu suất CSDL | Kém | Tốt | | Duy nhất | Có | Có | | Tiết lộ dấu thời gian | Không | Có (độ chính xác mili giây) |
Khuyến nghị: Sử dụng UUID v7 cho khóa chính cơ sở dữ liệu và UUID v4 khi bạn rõ ràng không muốn tiết lộ thời gian tạo. Hãy dùng thử cả hai trong công cụ tạo UUID.