Что следует учитывать при выборе типа данных для моего первичного ключа? - PullRequest
6 голосов
/ 23 октября 2008

Когда я создаю новую таблицу базы данных, какие факторы я должен учитывать при выборе типа данных первичного ключа?

Ответы [ 16 ]

0 голосов
/ 23 октября 2008

Отличным фактором является то, сколько данных вы собираетесь хранить. Я работаю в компании веб-аналитики, и у нас есть НАГРУЗКИ данных. Таким образом, первичный ключ GUID в нашей таблице просмотров страниц убил бы нас из-за размера.

Практическое правило. Для высокой производительности вы должны иметь возможность хранить весь свой индекс в памяти. Гид может легко сломать это!

0 голосов
/ 23 октября 2008

По возможности, старайтесь использовать первичный ключ, который является естественным ключом. Например, если бы у меня была таблица, в которой я регистрировал одну запись каждый день, лог-дата была бы хорошим первичным ключом. В противном случае, если нет естественного ключа, просто используйте int. Если вы думаете, что будете использовать более 2 миллиардов строк, используйте bigint. Некоторым людям нравится использовать GUID, который работает хорошо, поскольку они уникальны, и вам никогда не будет не хватать места. Тем не менее, они излишне длинные, и их сложно набрать, если вы просто делаете специальные запросы.

0 голосов
/ 23 октября 2008

Все зависит.

a) У вас все хорошо, если в качестве первичного ключа вы используете уникальные последовательные числовые числа? Если да, то достаточно выбрать UniqueIdentifier в качестве первичного ключа. б) Если ваш бизнес-спрос таков, что вам нужен буквенно-цифровой первичный ключ, то вам нужно перейти на varchar или nvarchar.

Это два варианта, о которых я мог подумать.

0 голосов
/ 23 октября 2008

Для «естественного» ключа любой тип данных подходит для столбцов. Искусственные (суррогатные) ключи обычно являются целыми числами.

0 голосов
/ 23 октября 2008

Я неравнодушен к использованию сгенерированного целочисленного ключа. Если вы ожидаете, что база данных станет очень большой, вы можете использовать bigint.

Некоторые люди любят пользоваться гидами. Преимущество в том, что вы можете объединить несколько экземпляров базы данных без изменения каких-либо ключей, но это может повлиять на производительность.

0 голосов
/ 23 октября 2008

Я обычно всегда использую целое число, но вот интересная перспектива.

https://blog.codinghorror.com/primary-keys-ids-versus-guids/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...