架构师_程序员_码农网

Имя пользователя Получить пароль
Регистрация

QQ登录

Всего один шаг, чтобы начать

Поиск
Просмотров:1654|Ответов: 2
打印 上一主题 下一主题

[资料][转](MSSQL)SQL Server database int and guid作键比较

[копировать ссылку]
Подъемник прямо к 跳转到指定楼层
владелец
发表于 2023-6-6 22:17:40|只看该作者回帖奖励|Реверсивныйпросмотр|Режим чтения
Требования: Недавно интервью, когда попросили 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)
Первый - использовать ту же модель, что и в предыдущем случае, а второй - использовать ту же модель, что и в предыдущем случае.
трикотаж
楼主|发表于 2023-6-6 22:42:46|只看该作者
SequentialGuidValueGenerator генерирует последовательные значения Guid, оптимизированные для использования с кластерными ключами или индексами Microsoft SQL Server и обеспечивающие лучшую производительность, чем случайные значения. Он устанавливается в качестве генератора по умолчанию для столбцов SQL Server Guid, создаваемых при добавлении.

h ttps:// learn.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.valuegeneration.sequentialguidvaluegenerator?view= efcore-7.0


Последовательные GUID в Entity Framework Core могут не быть последовательными

h ttps:// dev.to/connerphillis/sequential-guids-in-entity-framework-core-might-not-be-sequential-3408
Код Farmer, публикуется только в процессе практики, возникли технические трудности, не вводите в заблуждение других.
сапоги угги продажа
Скамейки
楼主|发表于 2024-1-27 11:07:29|只看该作者
[MSSQL]SQL SERVER Тесты упорядоченного GUID и неупорядоченного GUID в качестве первичного ключа агрегированного индекса
h ttps:// www.itsvse.com/thread-10607-1-1.html
Код фермерской сети, публикуется только в процессе практики, возникли технические трудности, не вводите в заблуждение других.
Ответ ЗаПротив

Не уверен, что вам это интересно.

Вы должны войти в систему, прежде чем сможете отправлять сообщения назад Войти | Зарегистрироваться

Эта версия интегральных правил


DISCLAIMER: Все программное обеспечение, материалы по программированию или статьи, выпущенные сетью Code Farmer, предназначены только для изучения и исследования; вышеуказанное содержание не должно использоваться в коммерческих или незаконных целях, в противном случае, все последствия, пожалуйста, пользователь несет ответственность. Это сайт информации из сети, авторские права спор не имеет никакого отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с вашего компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купить регистрацию и получить лучше подлинного обслуживания. Если есть какие-либо нарушения, пожалуйста, свяжитесь с нами по электронной почте, чтобы разобраться с этим.

Почта To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-19 06:14

Быстрый ответНазад к началуНазад к списку