Kinh Nghiệm Hướng dẫn Hướng dẫn uuid mysql – uuid mysql 2022
Quý khách đang tìm kiếm từ khóa Hướng dẫn uuid mysql – uuid mysql được Update vào lúc : 2022-11-02 09:20:07 . Với phương châm chia sẻ Kinh Nghiệm Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Admin lý giải và hướng dẫn lại nha.
Bài viết này sẽ trình làng bạn về MySQL UUID, và hướng dẫn sử dụng nó như thể primary key (PK), và trình diễn về pros và cons trong việc sử dụng nó như primary key.
Nội dung chính Show
- Giới thiệu MySQL UUID
- MySQL UUID vs. Auto-Increment INT như primary key
- MySQL UUID solution
- Ví dụ MySQL UUID
Giới thiệu MySQL UUID
Định danh duy nhất – Universally Unique IDentifier (UUID) được định nghĩa nhờ vào RFC 4122, “a Universally Unique Identifier (UUID) URN Namespace).
UUDI là số duy nhất trên toàn thế giới về mặt không khí và thời hạn. 2 UUID là khác lạ nhau trong cả những lúc được tạo ra từ 2 sever riêng không liên quan gì đến nhau.
Trong MySQL, UUID là một trong số dài 128-bit được màn biểu diễn dưới dạng chuỗi utf8 gồm 5 số thập lục phân theo định dạng sau:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
Để tạo ra giá trị UUID, bạn sử dụng hàm UUID() như sau:
Hàm UUID() trả về giá trị UUID tuân thủ theo UUID version 1 được mô tả trong RFC 4122.
Ví dụ:
mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
MySQL UUID vs. Auto-Increment INT như primary key
Pros
Một số ưu điểm của UUID:
- Vì là giá trị duy nhất trong tables, databases hay thậm chí còn là những servers rất khác nhau cho nên vì thế sẽ thuận tiện và đơn thuần và giản dị merge tài liệu từ những databases rất khác nhau mà không sợ trùng id.
- UUID không đi kèm theo với thông tin tài liệu nên sẽ bảo vệ an toàn và uy tín trên url. Ví dụ, nếu 1 user có id là 10 và truy vấn theo link http://www.example.com/customers/10/, từ đó người tiêu dùng dễ đoán được những user khác bằng việc thay 10 thành 11, 12, … việc này dễ bị hacker tiến công.
- UUID hoàn toàn có thể được tạo ở mọi nơi tránh ảnh hưởng tới việc xoay vòng database server. Nó cũng đơn thuần và giản dị hóa logic trong ứng dụng. Ví dụ: để thêm tài liệu vào bảng parent và bảng child, bạn phải thêm tài liệu vào bảng parent trước, và tạo id và thêm tài liệu vào bảng child. Bằng việc sử dụng UUID, bạn hoàn toàn có thể tạo primary key của bảng parent trước và thêm tài liệu vào cả hai bảng parent và child trong cùng 1 transaction.
Cons
Một số nhược điểm của UUID:
- UUID chiếm 16-bytes trong lúc kiểu INT chiếm 4-bytes hoặc BIGINT chiếm8-bytes.
- Có vẻ khó debug, tưởng tượng lệnh WHERE id = ‘df3b7cb7-6a95-11e7-8846-b05adad3f0ae’ với WHERE id = 10
- Vì không được sắp xếp thứ tự và kích thước lớn dẫn đến hiệu năng thấp.
MySQL UUID solution
Trong MySQL, bạn hoàn toàn có thể lưu UUID định dạng BINARY và hiển thị ra dạng VARCHAR bằng một số trong những những hàm sau:
- mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
0 - mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
1 - mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
2
Chú ý rằng những hàm
mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
3, mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
4, và mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
5 chỉ có trên MySQL >= 8.0.
Hàm
mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
3 chuyển UUID từ dạng VARCHAR sang dạng BINARY để lưu lại và sử dụng hàm mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
4 để chuyển UUID từ dạng BINARY sang dạng VARCHAR để hiển thị ra.
Hàm
mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
5 trả về giá trị 1 nếu tham số đúng định dạng chuỗi UUID, ngược lại trả về 0. Trong trường hợp tham số là mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
9, hàm mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
5 sẽ trả về mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
9.
Các UUID sau là hợp lệ trong MySQL:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
aaaaaaaabbbbccccddddeeeeeeeeeeee
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
Ví dụ MySQL UUID
Ví dụ sau sử dụng UUID làm primary key.
Trước tiên tạo 1 bảng mới tên
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
aaaaaaaabbbbccccddddeeeeeeeeeeee
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
2:
CREATE TABLE customers (
id BINARY(16) PRIMARY KEY,
name VARCHAR(255)
);
Thêm mới UUID vào cột
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
aaaaaaaabbbbccccddddeeeeeeeeeeee
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
3:
INSERT INTO customers(id, name)
VALUES(UUID_TO_BIN(UUID()),’John Doe’),
(UUID_TO_BIN(UUID()),’Will Smith’),
(UUID_TO_BIN(UUID()),’Mary Jane’);
Khi truy xuất tài liệu, sử dụng hàm
mysql> SELECT UUID();
+————————————–+
| uuid() |
+————————————–+
| 865234ad-6a92-11e7-8846-b05adad3f0ae |
+————————————–+
1 row in set (0.05 sec)
4 để quy đổi dạng binary sang dạng human-readable:
SELECT
BIN_TO_UUID(id) id,
name
FROM
customers;
Như vậy là ngoài cách tạo primary key bằng kiểu INT hay BIGINT, những bạn hoàn toàn có thể sử dụng UUID để làm PRIMARY KEY tùy vào mục tiêu sử dụng nhờ vào ưu điểm hay nhược điểm của nó.
Hi vọng nội dung bài viết hữu ích cho những bạn. ^^
Tải thêm tài liệu liên quan đến nội dung bài viết Hướng dẫn uuid mysql – uuid mysql
programming
mysql
UUID MySQL
Select uuid sql
Default value, MySQL
Ramsey/uuid
Reply
0
0
Chia sẻ
Share Link Download Hướng dẫn uuid mysql – uuid mysql miễn phí
Bạn vừa Read Post Với Một số hướng dẫn một cách rõ ràng hơn về Review Hướng dẫn uuid mysql – uuid mysql tiên tiến và phát triển nhất và Share Link Cập nhật Hướng dẫn uuid mysql – uuid mysql Free.
Hỏi đáp vướng mắc về Hướng dẫn uuid mysql – uuid mysql
Nếu sau khi đọc nội dung bài viết Hướng dẫn uuid mysql – uuid mysql vẫn chưa hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha
#Hướng #dẫn #uuid #mysql #uuid #mysql