UUID
trả về số nhận dạng duy nhất phổ biến
(Hopefuly cũng là duy nhất nếu được nhập vào DB khác).
Để trích dẫn từ MySQL doc (tôi nhấn mạnh):
Mặt khác, chỉ đơn giản là INT
khóa id chính (ví dụ: AUTO_INCREMENT ) sẽ trả về một số nguyên duy nhất cho bảng DB và DB cụ thể, nhưng không phải là duy nhất trên toàn cầu (vì vậy nếu được nhập vào một DB khác, rất có thể sẽ có xung đột khóa chính).
Về mặt hiệu suất, sẽ không có bất kỳ sự khác biệt đáng chú ý nào khi sử dụng auto-increment
qua UUID
. Hầu hết các bài đăng (bao gồm một số của các tác giả của trang web này), đều nêu như vậy. Tất nhiên UUID
có thể mất thêm một chút thời gian (và không gian), nhưng đây không phải là điểm nghẽn hiệu suất cho hầu hết (nếu không phải tất cả) trường hợp. Có một cột là Primary Key
nên làm cho cả hai lựa chọn bằng wrt với hiệu suất. Xem tài liệu tham khảo bên dưới:
- Tới
UUID
hoặc không thànhUUID
? - Thần thoại,
GUID
so vớiAutoincrement
- Hiệu suất:
UUID
so vớiauto-increment
trong cakephp-mysql -
UUID
hiệu suất trong MySQL? - Khóa chính:
ID
s so vớiGUID
s (mã hóa kinh dị)
(UUID
so với auto-increment
kết quả hiệu suất, được điều chỉnh từ Thần thoại, GUID
so với Autoincrement
)
UUID
ưu / nhược điểm (phỏng theo Khóa chính:ID
s so với GUID
s
)
Lưu ý
Tôi sẽ đọc kỹ các tài liệu tham khảo được đề cập và quyết định có sử dụng UUID
hay không hoặc không tùy thuộc vào trường hợp sử dụng của tôi. Điều đó nói rằng, trong nhiều trường hợp UUID
s thực sự sẽ thích hợp hơn. Ví dụ, người ta có thể tạo UUID
s mà hoàn toàn không sử dụng / truy cập cơ sở dữ liệu, hoặc thậm chí sử dụng UUID
s đã được tính toán trước và / hoặc được lưu trữ ở một nơi khác. Ngoài ra, bạn có thể dễ dàng tổng quát hóa / cập nhật lược đồ cơ sở dữ liệu và / hoặc lược đồ phân cụm của mình mà không phải lo lắng về ID
phá vỡ và gây ra xung đột.
Về các xung đột có thể xảy ra, ví dụ:sử dụng v4 UUIDS (ngẫu nhiên), xác suất để tìm thấy một bản sao trong vòng 103 nghìn tỷ phiên bản-4 UUID là một phần tỷ.