Wartości UUID są niezwykle fascynujące, ponieważ nawet jeśli wartości są generowane z tego samego urządzenia, nigdy nie mogą być takie same. Nie będę jednak wdrażał szczegółów na temat technologii używanych do wdrażania UUIDS.
W tym samouczku skupimy się na zaletach korzystania z UUIDS zamiast INT dla kluczy podstawowych, wad UUIDS w bazie danych oraz na tym, jak wdrażać UUID w MySQL.
Zacznijmy:
UUID w mysql
Aby wygenerować UUID w MySQL, używamy funkcji UUID (). Ta funkcja zwraca ciąg UTF8 z grupą 5-heksadecimalną w formie:
aaaaaaaa-bbbb-ccccc-dddd-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Pierwsze trzy segmenty są generowane jako część formatu czasu w formacie niskim, środkowym i wysokim.
Czwarty segment wartości UUID jest zarezerwowany dla zapewnienia tymczasowej wyjątkowości, gdzie wartość znacznika czasu spada monotoniczność.
Ostateczny segment reprezentuje wartość węzła IEEE 802, co oznacza wyjątkowość w przestrzeni.
Kiedy używać UUID w MySQL
Wiem, co myślisz:
Jeśli UUID są unikalne na całym świecie, dlaczego nie używamy ich jako domyślnych kluczy podstawowych w tabelach bazy danych? Odpowiedź jest zarówno prosta, jak i nie prosta.
Na początek UUID nie są natywnymi typami danych, takimi jak INT, które można ustawić jako klucz podstawowy i automatycznie zbieranie, ponieważ do bazy danych dodaje się więcej danych.
Po drugie, UUID mają swoje wady, które mogą nie mieć zastosowania we wszystkich przypadkach.
Pozwól mi udostępnić kilka przypadków, w których używanie UUID jako kluczy podstawowych może mieć zastosowanie.
Poniżej znajdują się niektóre z wady wdrażania UUID w Twojej bazie danych.
Funkcje UUID
W MySQL 8.0 i później, możesz użyć różnych funkcji, aby przeciwdziałać niektórym wadom przedstawionym przez UUIDS.
Te funkcje to:
Podstawowe użycie typów mysql UUID
Jak wspomniano wcześniej, aby zaimplementować UUIDS w MySQL, używamy funkcji UUID (). Na przykład, aby wygenerować UUID, robimy:
mysql> Wybierz uuid ();
+--------------------------------------+
|. Uuid () |
+--------------------------------------+
|. F9EB97F2-A94B-11EB-AD80-089798BCC301 |
+--------------------------------------+
1 wiersz w zestawie (0.01 s)
Stół z uuid
Utwórzmy tabelę z wartościami UUID i zobaczmy, w jaki sposób możemy wdrożyć taką funkcjonalność. Rozważ pytanie poniżej:
Upuść schemat, jeśli istnieje UUIDS;
Utwórz schemat UUIDS;
Użyj UUIDS;
Utwórz sprawdzanie poprawności tabeli
(
ID Binarny (16) klucz podstawowy
);
Wstaw do sprawdzania poprawności (id)
Wartości (uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ())),
(Uuid_to_bin (uuid ()));
Po wygenerowaniu wszystkich UUID, możemy je wybrać i przekonwertować z binarnych na łańcuchy UUID, jak pokazano w zapytaniu poniżej:
Wybierz identyfikator bin_to_uuid (id) z sprawdzania poprawności;
Oto wyjście:
Wniosek
W MySQL nie ma wiele do omówienia, ale jeśli chcesz dowiedzieć się o nich więcej, rozważ sprawdzenie źródła MySQL:
https: // dev.Mysql.com/doc/