I valori uuidi sono incredibilmente affascinanti perché anche se i valori sono generati dallo stesso dispositivo, non possono mai essere gli stessi. Tuttavia, non entrerò nei dettagli sulle tecnologie utilizzate per implementare gli uuidi.
In questo tutorial, ci concentreremo sui vantaggi dell'utilizzo di Uuidi invece di INT per le chiavi primarie, gli svantaggi degli uuidi in un database e su come implementare gli UUID in MySQL.
Iniziamo:
Uuid in mysql
Per generare un uuid in mysql, utilizziamo la funzione uuid (). Questa funzione restituisce una stringa UTF8 con un gruppo 5-exadecimale sotto forma di:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
I primi tre segmenti vengono generati come parte del formato timestamp nel formato basso, medio e alto.
Il quarto segmento del valore uuid è riservato per garantire unicità temporanea, in cui il valore del timestamp scende la monotonicità.
Il segmento finale rappresenta il valore del nodo IEEE 802, che significa unicità attraverso lo spazio.
Quando usare uuid in mysql
So cosa stai pensando:
Se gli uuidi sono univoci a livello globale, perché non li usiamo come chiavi primarie predefinite nelle tabelle del database? La risposta è sia semplice che non semplice.
Per iniziare, gli uuidi non sono tipi di dati nativi come un INT, che è possibile impostare come chiave primaria e incremento automatico poiché più dati vengono aggiunti al database.
In secondo luogo, gli uuidi hanno i loro svantaggi che potrebbero non essere applicabili in tutti i casi.
Consentitemi di condividere alcuni casi in cui l'utilizzo degli uuidi come chiavi primari potrebbe essere applicabile.
Di seguito sono riportati alcuni degli svantaggi dell'implementazione di UUID nel tuo database.
Funzioni uuid
In mysql 8.0 e successivamente, è possibile utilizzare varie funzioni per contrastare alcuni degli svantaggi presentati dagli uuidi.
Queste funzioni sono:
Utilizzo dei tipi Uuid Mysql di base
Come accennato in precedenza, per implementare gli UUID in MySQL, utilizziamo la funzione UUID (). Ad esempio, per generare uuid, facciamo:
mysql> seleziona uuid ();
+--------------------------------------+
| Uuid () |
+--------------------------------------+
| F9EB97F2-A94B-1EB-AD80-089798BCC301 |
+--------------------------------------+
1 riga in set (0.01 sec)
Tavolo con uuid
Creiamo una tabella con valori UUID e vediamo come possiamo implementare tale funzionalità. Considera la query di seguito:
Drop Schema se esiste uuidi;
Creare uuidi schema;
Usa gli uuidi;
Crea la convalida della tabella
(
ID BINARY (16) Chiave primaria
);
Inserisci in convalida (ID)
Valori (uuid_to_bin (uuid ()),
(Uuid_to_bin (uuid ()),
(Uuid_to_bin (uuid ()),
(Uuid_to_bin (uuid ()),
(Uuid_to_bin (uuid ()));
Una volta generati tutti gli uuidi, possiamo selezionarli e convertirli dai valori binari a stringa come mostrato nella query seguente:
Selezionare Bin_to_uuid (ID) ID dalla convalida;
Ecco l'output:
Conclusione
Non c'è molto da coprire sugli uuidi in mysql, ma se desideri saperne di più su di loro, considera di dare un'occhiata alla fonte MySQL:
https: // dev.mysql.com/doc/