Hướng dẫn uuid mysql - uuid mysql Hướng dẫn FULL

Hướng dẫn uuid mysql - uuid mysql Hướng dẫn FULL

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;


Hướng dẫn uuid mysql - uuid mysql


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


Hướng dẫn uuid mysql - uuid mysqlReply
Hướng dẫn uuid mysql - uuid mysql0
Hướng dẫn uuid mysql - uuid mysql0
Hướng dẫn uuid mysql - uuid mysql 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 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

Related posts:

Post a Comment

Previous Post Next Post

Discuss

×Close