Czy identyfikatory GUID są uporządkowane na czas? Mam na myśli, jeśli użyjesz ORDER BY z typem zmiennej GUID, czy rekordy tworzone ostatnio się spóźnią?Czy identyfikatory GUID są uporządkowane na czas? Jeśli ORDER BY używane z typem zmiennej GUID, czy rekordy utworzone ostatnio się spóźnią?
Odpowiedz
Prosty LINQPad makieta odpowiedzi na swoje pytanie:
var dictionary = new Dictionary<int, Guid>();
for (int i = 0; i < 5; i++)
dictionary.Add(i, Guid.NewGuid());
dictionary.OrderBy(d => d.Value);
wyniki w:
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
proszę zobaczyć this
globalnie unikalny identyfikator (GUID,/ɡwɪd/lub/ɡuːɪd /) to unikalny numer referencyjny stosowany jako identyfikator w oprogramowaniu komputerowym. Termin GUID zwykle odnosi się do różnych implementacji standardu unikalnego identyfikatora UUID (uniwersalny identyfikator). 1 Identyfikatory GUID są zwykle przechowywane jako wartości 128-bitowe i są zwykle wyświetlane jako 32 cyfry szesnastkowe z grupami rozdzielonymi myślnikami, takimi jak {21EC2020-3AEA-1069-A2DD-08002B30309D}. Identyfikatory GUID wygenerowane z losowych numerów zawierają 6 stałych bitów, mówiąc, że są losowe i 122 losowych bitów; całkowita liczba unikatowych takich identyfikatorów GUID wynosi 2122 lub 5,3 × 1036. Ta liczba jest tak duża, że prawdopodobieństwo, że ta sama liczba wynosi wygenerowana losowo dwa razy, jest nieistotne; jednak inne wersje GUID mają różne właściwości unikalności i prawdopodobieństwa, począwszy od gwarantowanej unikalności do prawdopodobnej nie-unikalności.
W systemie Windows identyfikatory GUID (UUID) są tworzone z kryptograficznego generatora liczb losowych z UuidCreate. Są to UUID w wersji 4 pod względem RFC 4122. Nie ma znaczników czasowych ani kart ethernetowych, chyba że używasz GUID starych wersji 1 szkoły utworzonej za pomocą UuidCreateSequential.
Zobacz także How Random is System.Guid.NewGuid()? (Take two)
Zawsze nie pomyślał ale zrozumiałem, że nie wiem wiem o tym. Interesujące pytanie (+1). – Mansfield
Identyfikatory GUID same w sobie są zaledwie 128 bitami danych o niewielkiej strukturze. Istnieją różne sposoby * generowania * guidów, więc jeśli chcesz zadać to pytanie, musisz powiedzieć, w jaki sposób * generujesz * guidy. –
Na marginesie, jeśli utworzysz tabelę na serwerze SQL mającą klucz klastrowany typu GUID, porządek fizyczny wierszy jest taki sam, jak identyfikatory GUID, tj. W żadnej określonej kolejności, co oznacza, że każdy wstawiony nowy wiersz często prowadzi do podziału strony to jest szkodliwe dla wydajności. Najważniejsze: nie używaj identyfikatorów GUID jako kluczy klastrowych, jeśli możesz tego uniknąć. –