I GUID sono ordinati in modo tempestivo? Voglio dire se usi ORDER BY con un tipo di variabile GUID, i record creati ultimamente arrivano in ritardo?I GUID sono ordinati in modo tempestivo? Se ORDER BY utilizzato con un tipo di variabile GUID, i record creati ultimamente arrivano in ritardo?
risposta
Un semplice LINQPad mockup risponde alla tua domanda:
var dictionary = new Dictionary<int, Guid>();
for (int i = 0; i < 5; i++)
dictionary.Add(i, Guid.NewGuid());
dictionary.OrderBy(d => d.Value);
risultati in:
Key Value
2 3624183d-581a-45bc-9d3d-cafeddaf8585
0 4b4685c9-f163-4694-ae8c-4b83402a293c
4 7a14d8e4-d870-4f33-bfb3-f4337b756e18
1 b93131c7-c0d7-42b4-82b5-e3cc456214a9
3 cfdc0bc8-7f5a-4601-a927-a759bb9e33c6
Si prega di vedere this
un identificatore univoco globale (GUID,/ɡwɪd/o/ɡuːɪd /) è un numero di riferimento unico usato come un identificatore in software per computer. Il termine GUID si riferisce in genere a varie implementazioni dello standard universale U2ID ( ). I GUID 1 vengono in genere memorizzati come valori a 128 bit e vengono comunemente visualizzati come 32 cifre esadecimali con gruppi separati da trattini, ad esempio {21EC2020-3AEA-1069-A2DD-08002B30309D}. I GUID generati da numeri casuali contengono 6 bit fissi che indicano che sono casuali e 122 bit casuali; il numero totale di tali GUID univoci è 2122 o 5.3 × 1036. Questo numero è così grande che la probabilità che lo stesso numero sia generato in modo casuale due volte è trascurabile; tuttavia, altre versioni GUID presentano proprietà e probabilità di univocità diverse, che vanno da univocità garantita alla probabile non univocità.
Su Windows, i GUID (UUID) vengono creati da un generatore di numeri casuali crittografico con UuidCreate. Sono UUID versione 4 in termini di RFC 4122. Nessun timestamp o scheda Ethernet sono coinvolti, a meno che non si utilizzino GUID della versione 1 della vecchia scuola creati con UuidCreateSequential.
Ho sempre pensato non, ma ho realizzato che non sono reale lo so. Interessante domanda (+1). – Mansfield
GUID, di per sé, sono solo 128 bit di dati con una piccola quantità di struttura. Ci sono diversi modi per * generare * guids, quindi se vuoi fare questa domanda, devi dire come stai * generando * i guids. –
Nota a margine, se si crea una tabella in SQL Server con una chiave cluster di tipo GUID, l'ordine fisico delle righe è uguale a quello del GUID, vale a dire senza un ordine particolare, il che significa che ogni nuova riga inserita porta spesso a divisioni di pagina ciò è dannoso per le prestazioni. La linea di fondo: non usare i GUID come chiavi di gruppo se puoi evitarlo. –