Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3812|Отговор: 2

[Източник] [Turn] (MSSQL) SQL Server база данни int и guid за сравнение на първични ключове

[Копирай линк]
Публикувано в 6.06.2023 г. 22:17:40 ч. | | |
Изисквания: По време на скорошно интервю ме попитаха каква е разликата между SQL Server database int и guid като основен ключ.И двете имат плюсове и минуси, моля, претеглете ги според реалните си бизнес ситуации

Оригинален текст 1Входът към хиперлинк е видим.

Предимства на използването на INT като основен ключ:

1. Изисква малко пространство за съхранение на данни, само 4 байта.

2. Производителността при използване на INT за операции по вмъкване и актуализация е по-добра от тази на GUID, така че използването на int подобрява производителността на приложението.

3. Операции Index и Join – int има най-добра производителност.

4. Лесно за запомняне.

5. Поддръжка за получаване на най-новата стойност чрез функция, като: Scope_Indentity().

Недостатъци на използването на INT като основен ключ

1. Ако има честа операция за сливане на таблици, може да има дублиране на първичните ключове.

2. Съществуват ограничения относно обхвата на използването на INT данни. Ако има голямо количество данни, то може да надвиши диапазона на стойностите INT.

3. Трудно е да се обработват разпределени таблици със съхранени данни.

Предимства на използването на GUID като основен ключ:

1. Уникално е.

2. Има малко възможности за дублиране.

3. Подходящ е за операции по вмъкване и обновяване в голямо количество данни.

4. Сливането на данни между сървъри е много удобно.

Недостатъци на използването на GUID като първичен ключ:

1. Пространството за съхранение е голямо (16 байта), така че ще заема повече размер на диска.

2. Трудно е да си спомня. Производителността на операцията join е по-ниска от тази на int.

3. Няма вградена функция за получаване на най-новия генериран GUID основен ключ.

4. GUID като първичен ключ ще бъде добавен към други индекси на таблицата, което ще намали производителността.

Резюме:

Горното изброява предимствата и недостатъците на типовете данни GUID и INT като основни ключове. Мисля, че за големи обеми данни се препоръчва да се използва guid като първичен ключ. Като има предвидИзползването на интелект ще ти даде най-добрата производителност


Коментар: ИзползванеПодредената производителност на GUID значително се подобрява

Оригинален текст двеВходът към хиперлинк е видим.

Идентичност е цял тип тип, десетична без десетична дефиниция, бигинт е приемлив

Гидът е фиксиран двоичен (16), който е 16 байта

идентичността се увеличава (или изважда), а guid е случаен, така че когато се вмъкват данни,Първият няма да произведе фрагменти, докато вторият ще произведе, а тъй като вторият е извън ред, редът трябва да се коригира при вмъкване, така че първият обикновено е по-добър от втория по отношение на производителността.

Голямо количество информация обикновено се разделя на таблици, така че идентичността е все още по-подходяща в много случаи

Що се отнася до значението на първичния ключ, това зависи от това как го разглеждате при проектирането, за самата обработка на данни първичният ключ не е задължително да е смислен, а ако изисквате първичният ключ да съдържа бизнес смисъл, тогава първичният ключ за идентичност, разбира се, е безсмислен, но като цяло е по-добре да се раздели бизнес смисълът и обработката на данни, бизнесът постоянно се променя, ако искате да пренесете значението в основния ключ на дизайна на таблицата, тогава бизнесът се променя, ще трябва да коригирате структурата на таблицата повече.

Оригинален текст триВходът към хиперлинк е видим.

1. В системи, които често трябва да извършват миграция на данни, се препоръчва използването на Guid. А добавянето на неклъстерни индекси към съответните външни ключови полета, тоест полета, използвани за заявки за съединяване, е от голяма полза за подобряване на производителността. Полето на условието where може да се добави и при подходящо за неклъстерирани индекси.

2. Когато използвате типа Guid като първичен ключ, типът данни трябва да бъде уникален идентификатор и да го запомнитеОтмени първичния ключ "Агрегатни индекси

3. За системи, които не се нуждаят от миграция, или за малки системи, все още е много удобно да се използва int като първичен ключ и има известно подобрение в ефективността.

(Край)




Предишен:ASP.NET Ядро (20) Предотвратяване на открити пренасочващи атаки
Следващ:.NET Core програмни многоезични ресурси за четене и запис (.resx) файлове
 Хазяин| Публикувано в 6.06.2023 г. 22:42:46 ч. |
SequentialGuidValueGenerator генерира последователни Guid стойности, оптимизирани за използване с ключове или индекси на Microsoft SQL Server, което води до по-добра производителност от случайните стойности. Това е стандартният генераторен набор за генериране на колони Guid на SQL Server при тяхното добавяне.

Входът към хиперлинк е видим.


Последователните GUID в Entity Framework Core може да не са последователни

Входът към хиперлинк е видим.
 Хазяин| Публикувано в 27.01.2024 г. 11:07:29 ч. |
[MSSQL] SQL SERVER подредени GUID и неподредени GUID като основни тестове за индекс на агрегиране на ключове
https://www.itsvse.com/thread-10607-1-1.html
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com