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
UUIDhoặc không thànhUUID? - Thần thoại,
GUIDso vớiAutoincrement - Hiệu suất:
UUIDso vớiauto-incrementtrong cakephp-mysql -
UUIDhiệu suất trong MySQL? - Khóa chính:
IDs so vớiGUIDs (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ỷ.