Database Theory: Sự thật về Mã nhận dạng duy nhất phổ biến - UUID

2022-03-20 16:05:55

Tôi đang chia sẻ một lý thuyết quan trọng cho tất cả các Kiến trúc sư và Nhà thiết kế Cơ sở dữ liệu.

Chúng tôi đang tuân theo một thực tiễn phổ biến để tạo một số tuần tự, duy nhất cho hệ thống cơ sở dữ liệu.

Phương pháp hay nhất là tạo một khóa số nguyên chính cho mọi bảng đại diện cho các bộ giá trị.
Nhưng bạn cũng nên biết về UUID.
Bạn có thể truy cập bài viết này về Sự thật về Khóa chính.

What is UUID and How it generates Unique Number?

UUID – Universally Unique Identifier has also stand as a unique string.

UUID là một số 128 bit và nó được sử dụng để xác định duy nhất các loại thực thể khác nhau.
Việc tính toán UUID nhanh chóng và dễ dàng để tạo một ID có thể được giả định một cách hợp lý là duy nhất trên toàn cầu.

UUID là duy nhất trên toàn cầu vì nó chứa sự kết hợp duy nhất của địa chỉ mạng, dấu thời gian của giao dịch và các chi tiết thành phần khác.
Địa chỉ mạng và dấu thời gian của giao dịch đủ để đảm bảo tính duy nhất.

Ví dụ, dạng chuẩn của UUID. Nó có tổng cộng 32 chữ số và đại diện cho 128 bit.

Tại sao chúng tôi yêu cầu UUID?

Khi chúng tôi làm việc trong hệ thống môi trường phân tán, chúng tôi cần UUID xác định dữ liệu tích hợp từ các hệ thống khác nhau.

Ví dụ,
Chúng tôi có hai hệ thống, Hệ thống A và Hệ thống B. Bây giờ tôi muốn nhập một số dữ liệu từ Hệ thống A sang Hệ thống B mà không thay đổi ID của hệ thống nguồn. Hệ thống B đã có một tập hợp các ID được lưu trữ có thể xung đột với ID Hệ thống A.

UUID giải quyết vấn đề trên.

Nếu hệ thống không trực tuyến, người dùng ngoại tuyến cũng có thể tạo một UUID ở phía máy khách cho một vài thao tác.

Một UUID luôn duy nhất cho tất cả các hệ thống nằm trong môi trường phân tán.

Ví dụ,
Hệ thống A chèn một bản ghi với ID 10 và đồng thời Hệ thống B cũng chèn một bản ghi với ID 10.
Bây giờ, đây là một vụ va chạm.
UUID giải quyết vấn đề này.

Nếu hệ thống được truy cập bởi nhiều luồng, mỗi luồng phải đợi ID mới.
UUID cũng giải quyết vấn đề này vì nó không phụ thuộc vào khóa đã tạo trước đó.

Chúng tôi có thể tạo ra hàng nghìn tỷ UUID trong một năm và nó có rất ít cơ hội trùng lặp.

Nếu chúng tôi tạo lại Cơ sở dữ liệu hoặc Bảng, thì ID tuần tự lại bắt đầu từ 1. Trong loại tình huống này, chúng ta có thể sử dụng UUID.

Các hạn chế khác:

Sự phân mảnh chỉ mục là một trong những nhược điểm lớn của việc sử dụng các khóa ngẫu nhiên UUID.

Chúng ta không nên sử dụng UUID làm khóa chính của bảng. Tuy nhiên, tôi khuyên bạn nên tạo một khóa chính tuần tự số nguyên và tạo một cột riêng cho UUID.

Xem thêm:


Chia sẻ: