Ad
Thủ Thuật Công Nghệ

UUID là gì? Khi nào cần sử dụng UUID?

Pinterest LinkedIn Tumblr

 

Để có thể kiểm tra và đăng ký ứng dụng trên iPhone để thử nghiệm bản beta, nhà phát triển cần sử dụng UUID. Với vai trò là một định danh số duy nhất dùng để xác định một hay nhiều thiết bị, UUID đóng vai trò quan trọng trong việc phát triển ứng dụng. Vậy thực chất UUID là gì? Hãy cùng Wiki.lanit nghiên cứu và tìm hiểu về thuật ngữ này trong bài viết sau đây nhé!

UUID là gì?

UUID (Universally Unique Identifier) hay còn được biết đến với tên gọi là GUID (Globally Unique Identifier) là một giá trị duy nhất có độ dài 128 bit. Chuỗi UUID chuẩn được biểu diễn bằng các chữ số hex (octet):

0710a5ca-f57e-11e9-802a-5aa538984bd8
UUID là gì?
UUID là gì?

Vậy UUID được tạo ra với mục đích gì?

  • Khi người dùng sở hữu khối lượng dữ liệu lớn, kiểu khóa chính là auto imcrement yêu cầu nhiều byte để lưu trữ sẽ không phù hợp đối với hệ thống nhiều server.
  • Khi dùng khóa chính kiểu auto imcrement thì dễ truy ra có bao nhiêu record trong database.

Chính vì vậy mà UUID ra đời nhằm khắc phục các khuyết điểm trên. Nhất là khi bạn muốn xây dựng hệ thống nhiều server phục vụ hàng tỉ người dùng thì UUID sẽ là lựa chọn sáng suốt.

Các phiên bản của UUID 

Dưới đây là các phiên bản phổ biến nhất của UUID:

  • UUID phiên bản 1 (Time-based): Sử dụng thời gian và địa chỉ MAC (Media Access Control) của thiết bị để tạo ra UUID. Phiên bản này có thể dễ dàng theo dõi thời gian tạo UUID, nhưng có thể gây ra vấn đề về tính riêng tư vì nó có thể tiết lộ địa chỉ MAC.
  • UUID phiên bản 2 (DCE security): Thường không được sử dụng rộng rãi, được thiết kế để sử dụng trong hệ thống phân phối của DCE (Distributed Computing Environment).
  • UUID phiên bản 3 (Name-based): Dựa trên một chuỗi dữ liệu đầu vào cố định (như tên miền hoặc URL), nó sử dụng thuật toán băm để tạo ra UUID duy nhất từ dữ liệu này.
  • UUID phiên bản 4 (Random): Đây là phiên bản phổ biến nhất. UUID được tạo ra dựa trên ngẫu nhiên và không dựa trên thời gian hay dữ liệu đầu vào cố định nào khác.
  • UUID phiên bản 5 (Name-based): Tương tự như phiên bản 3, nhưng sử dụng thuật toán hàm băm khác (SHA-1 thay vì MD5) để tạo ra UUID từ một chuỗi dữ liệu đầu vào cố định.

Thời điểm cần sử dụng UUID là gì?

Thời điểm cần sử dụng UUID là gì?
Thời điểm cần sử dụng UUID là gì?

Có một số trường hợp khi việc sử dụng UUID là cần thiết:

  • Định danh duy nhất: UUID đảm bảo tính duy nhất trên toàn cầu. Khi cần một định danh không trùng lặp cho các đối tượng hoặc tài nguyên trong môi trường phân tán hoặc trong các hệ thống lớn, UUID được sử dụng để đảm bảo tính duy nhất và tránh xung đột.
  • Môi trường phân tán và phân phối: Trong các hệ thống phân tán hoặc khi làm việc với nhiều máy chủ, việc sử dụng UUID giúp xác định các tài nguyên một cách duy nhất mà không cần sự trùng lặp hoặc xung đột.
  • Sử dụng trong cơ sở dữ liệu: Trong cơ sở dữ liệu, UUID thường được sử dụng làm khóa chính để đảm bảo tính duy nhất của mỗi bản ghi. Điều này tránh việc xung đột khi thêm mới dữ liệu và giúp tích hợp dữ liệu từ nhiều nguồn một cách an toàn.
  • Tạo danh tính ngẫu nhiên: UUID thường được sử dụng trong các ứng dụng cần tạo danh tính ngẫu nhiên như trong việc tạo mã định danh phiên (session ID) trong web development, mã xác thực người dùng, mã định danh tài liệu, và nhiều trường hợp khác.

Lưu ý khi UUID gặp cơ sở dữ liệu

UUID mang lại nhiều lợi ích, nhưng cũng có nhược điểm khi sử dụng trong hệ thống thực. So với số nguyên, UUID lớn hơn và phức tạp hơn khi sắp xếp, lập chỉ mục và sử dụng làm khóa chính. Điều này có thể ảnh hưởng đến hiệu suất, đặc biệt là với UUID ngẫu nhiên. Sử dụng UUID dưới dạng dữ liệu nhị phân có thể giảm vấn đề, nhưng vẫn cần tài nguyên bổ sung. Một chiến lược hiệu quả là có thể kết hợp số nguyên làm khóa chính và thêm một trường UUID để tham khảo, tùy thuộc vào yêu cầu cụ thể của hệ thống và hiệu suất mong muốn.

Kết luận

Trên đây là những thông tin bạn cần biết về UUID là gì? Hy vọng bạn có cái nhìn tổng quát về thuật ngữ này và đừng quên nhấn theo dõi Wiki Lanit để cập nhật nhiều thông tin hữu ích hơn nữa nhé!

Mình là Tú Anh - Hiện mình đang đảm nhận một số mảng trong chiến dịch Marketing tại LANIT. Mình đã có kinh nghiệm nhiều năm trong mảng kinh doanh online, nên rất hy vọng với những kiến thức mình chia sẻ về lĩnh vực này sẽ thật sự hữu ích đối với các bạn.

Comments are closed.