Jagв настоящее время не в сети
- toms shoes outlet
- 16373
|
Требования: Недавно интервью, когда попросили SQL Server базы данных int и guid сделать ключ, в чем разница между двумя сделать первичный ключ хотя используется, однако, не имел глубокого понимания двух имеют преимущества и недостатки, в соответствии с их собственными реальными бизнес-сценариями для компромиссов.
Оригинальная статья: https: //www.cnblogs.com/dullbaby/p/5112386.html
Преимущества использования INT в качестве первичного ключа:
1, требуется очень небольшое пространство для хранения данных, всего 4 байта.
2, операции вставки и обновления с использованием INT работают лучше, чем GUID, поэтому использование INT повышает производительность приложения.
3, в операциях индексирования и соединения производительность int лучше всего.
4, легко запомнить.
5, поддержка функции для получения последнего значения, например: Scope_Indentity ().
Недостатки использования INT в качестве первичного ключа
1, если часто происходит операция слияния таблиц, может возникнуть дубликат первичного ключа.
2、Использование диапазона данных INT имеет ограничения. Если имеется большой объем данных, он может выйти за пределы диапазона значений INT.
3、Трудно работать с распределенным хранением таблиц данных.
Преимущества использования GUID в качестве первичного ключа:
1, он уникален.
2, меньше шансов на дублирование.
3, подходит для операций вставки и обновления большого количества данных.
4, межсерверное объединение данных очень удобно.
Недостатки использования GUID в качестве первичного ключа:
1, большой объем памяти (16 байт), поэтому он будет занимать больше места на диске.
2, трудно запомнить. Производительность операции объединения ниже, чем у int.
3, нет встроенной функции для получения последнего сгенерированного первичного ключа GUID.
4, GUID в качестве первичного ключа будет добавлен к другим индексам таблицы, что снизит производительность.
Резюме:
Выше перечислены преимущества и недостатки типов данных GUID и INT в качестве первичных ключей. Я думаю, что для больших объемов данных рекомендуется использовать GUID в качестве первичного ключа. А использование INT обеспечит наилучшую производительность.
Комментарии: производительность будет намного выше, если использовать упорядоченный GUID.
Оригинальная статья II: https: //qa.social.msdn.microsoft.com/Forums/expression/zh-CN/70740eaa-bbb6-4cba-8693-a11e712869fa/sqlguididentity?forum= sqlserverzhchs
identity - целочисленный тип, подходит десятичный, подходит bigint.
guid - фиксированный binary(16), то есть 16 байт.
identity - инкрементный (или декрементный), а guid - случайный, поэтому при вставке данных первый не будет генерировать фрагментацию, а второй будет, и поскольку второй неупорядочен, вам придется регулировать порядок вставки, поэтому производительность, как правило, у первого лучше, чем у второго.
Большой объем информации обычно делится на таблицы, поэтому идентификация все же более применима во многих случаях.
Что касается значения первичного ключа, это зависит от вашего дизайна, как рассматривать, для обработки данных, первичный ключ не обязательно иметь значение, и если вы требуете, чтобы первичный ключ содержит бизнес смысл, то идентичность первичный ключ, конечно, не имеет смысла, но в целом, бизнес смысл и обработки данных будет лучше отделить некоторые, бизнес всегда меняется, если вы хотите принести смысл таблицы дизайн первичного ключа в , то бизнес меняется, вы должны настроить структуру таблицы будет больше.
Оригинал третий: https: //www.cnblogs.com/xdot/p/6054415.html
1. в частой необходимости сделать миграции данных системы, рекомендуется использовать Guid. и в соответствующих полей внешних ключей, то есть используется для выполнения соединения поле запроса, чтобы добавить неагрегатные индексы, для улучшения производительности имеет большие преимущества. где условие поле также может быть целесообразным для добавления неагрегатных индексов.
2. при использовании типа Guid в качестве первичного ключа, тип данных должен быть уникальным идентификатором, и необходимо помнить, чтобы отменить первичный ключ " агрегированный индекс ".
3. для тех, кому не нужно делать миграцию, или небольших систем, использование int в качестве первичного ключа все еще очень удобно, а с точки зрения эффективности все еще является определенным улучшением.
(Окончание) |
Предыдущая статья: ASP.NET Core (XX) для предотвращения атак с открытым перенаправлениемСледующая статья: .NET Core программа мультиязычного чтения и записи файлов ресурсов (.resx)
|