Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3812|Odpowiedź: 2

[Źródło] [Obrót] (MSSQL) SQL Server database int and guid do porównania kluczy głównych

[Skopiuj link]
Opublikowano 06.06.2023 22:17:40 | | |
Wymagania: Podczas niedawnej rozmowy kwalifikacyjnej zapytano mnie, jaka jest różnica między SQL Server database int a guid jako kluczem głównym.Obie mają swoje plusy i minusy, proszę, rozważ je zgodnie z rzeczywistymi sytuacjami biznesowymi

Oryginalny tekst 1Logowanie do linku jest widoczne.

Zalety stosowania INT jako klucza głównego:

1. Wymaga niewielkiej przestrzeni danych, tylko 4 bajty.

2. Wydajność używania INT do operacji wstawiania i aktualizacji jest lepsza niż w GUID, więc użycie int poprawi wydajność aplikacji.

3. Operacje indeksowania i łączenia – int ma najlepszą wydajność.

4. Łatwe do zapamiętania.

5. Wsparcie uzyskania najnowszej wartości przez funkcję, taką: Scope_Indentity().

Wady używania INT jako klucza podstawowego

1. Jeśli często występuje łączenie tabel, może dojść do duplikacji kluczy pierwotnych.

2. Istnieją ograniczenia dotyczące zakresu wykorzystania danych INT. Jeśli ilość danych jest duża, może ona przekraczać zakres wartości INT.

3. Trudno jest przetwarzać rozproszone tabele przechowywanych danych.

Zalety stosowania GUID jako klucza głównego:

1. Jest wyjątkowa.

2. Możliwości powielania są niewielkie.

3. Nadaje się do operacji wstawiania i aktualizacji w dużej ilości danych.

4. Łączenie danych między serwerami jest bardzo wygodne.

Wady stosowania GUID jako klucza głównego:

1. Przestrzeń pamięci jest duża (16 bajtów), więc zajmie większą powierzchnię dysku.

2. Trudno to zapamiętać. Wydajność operacji łączenia jest niższa niż w przypadku int.

3. Nie ma wbudowanej funkcji do uzyskania najnowszego wygenerowanego klucza głównego GUID.

4. GUID jako klucz główny zostanie dodany do innych indeksów w tabeli, co obniży wydajność.

Streszczenie:

Powyższe wymieniono zalety i wady typów danych GUID i INT jako kluczy głównych. Myślę, że przy dużych wolumenach danych zaleca się używanie guid jako klucza głównego. zaśUżycie int da ci najlepszą wydajność


Komentarz: UżycieWydajność uporządkowanego GUID znacznie się poprawia

Oryginalny tekst drugiLogowanie do linku jest widoczne.

Tożsamość to typ typu całego, dziesiętny bez definicji dziesiętnej, bigint jest akceptowalny

Guid jest stały binarny(16), czyli 16 bajtów

Tożsamość jest zwiększana (lub odejmowana), a GUID jest losowy, więc w miarę wstawiania danychPierwszy nie wygeneruje fragmentów, drugi tak, a ponieważ drugi jest w nieodpowiedniej kolejności, kolejność musi być dostosowana po wstawieniu, więc pierwsza jest zazwyczaj lepsza od drugiej pod względem wydajności.

Duża ilość informacji jest zwykle podzielona na tabele, więc tożsamość jest w wielu przypadkach jeszcze bardziej odpowiednia

Jeśli chodzi o znaczenie klucza głównego, to zależy od tego, jak go postrzegasz przy projektowaniu – dla samego przetwarzania danych klucz główny nie musi mieć znaczenia, a jeśli wymagasz, aby klucz główny zawierał znaczenie biznesowe, to klucz główny tożsamości oczywiście nie ma znaczenia, ale ogólnie lepiej oddzielić znaczenie biznesowe od przetwarzania danych, bo biznes ciągle się zmienia, jeśli chcesz nadać znaczenie głównemu kluczowi w projektowaniu tabeli, wtedy biznes się zmienia, musisz bardziej dostosować strukturę tabeli.

Oryginalny tekst trzeciLogowanie do linku jest widoczne.

1. W systemach, które często wymagają migracji danych, zaleca się używanie Guid. A dodawanie indeksów nieklastrowanych do odpowiadających pol klucza obcego, czyli pol używanych do zapytań o połączenia, przynosi ogromne korzyści dla poprawy wydajności. Pole warunku gdzie można również dodać w odpowiednim przypadku dla indeksów nieskupionych.

2. Używając typu Guid jako klucza głównego, typ danych powinien być unikalny i należy go zapamiętaćAnuluj klucz główny "Indeksy agregowane

3. W systemach, które nie wymagają migracji lub małych systemach, nadal bardzo wygodne jest użycie int jako klucza głównego, a wydajność jest pewna poprawa.

(Koniec)




Poprzedni:ASP.NET Rdzeń (20) Zapobieganie otwartym atakom przekierowaniowym
Następny:.NET Core program wielojęzyczne pliki zasobów do odczytu i zapisu (.resx)
 Ziemianin| Opublikowano 06.06.2023 22:42:46 |
SequentialGuidValueGenerator generuje sekwencyjne wartości Guid, które są zoptymalizowane do użycia z kluczami lub indeksami klastrów Microsoft SQL Server, co skutkuje lepszą wydajnością niż losowe wartości. To domyślny generator do generowania kolumn Guid SQL Server po ich dodaniu.

Logowanie do linku jest widoczne.


Sekwencyjne GUIDy w Entity Framework Core mogą nie być sekwencyjne

Logowanie do linku jest widoczne.
 Ziemianin| Opublikowano 27.01.2024 11:07:29 |
[MSSQL] SQL SERVER uporządkował GUIDy i nieuporządkowane GUIDy jako testy agregacji kluczy głównych
https://www.itsvse.com/thread-10607-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com