2016-11-19 2 views
-1

У меня возникают некоторые проблемы, связанные с серой областью между первичными ключами и индексами и их отношениями. Я знаю, что в db2, когда создается первичный ключ, для этого атрибута автоматически присваивается уникальный индекс.Следует ли индексировать первичный ключ?

Может ли быть какой-либо эффект, влияющий на назначение другого индекса первичному ключу? Если да, то как и когда происходят эти улучшения производительности?

Благодаря

+0

(1) Я не понимаю, почему вам нужен другой указатель, назначенный первичному ключу, или почему он будет другим. (2) Я не знаю разницы в производительности. – duffymo

+1

'Серая область между первичными ключами и индексами,' Нет серой области. «первичный ключ» - это концепция абстрактного * (теоретическое/моделирование данных). 'index' является * физическим * объектом. (часто используется или требуется или подразумевается PK) – wildplasser

+0

Первичный ключ - это * уникальный * идентификатор для его строки. Я не уверен, что вы подразумеваете под «другим индексом» из уникального индекса, который используют некоторые базы данных для создания первичного ключа. –

ответ

1

Создание собственного индекса даст вам полный контроль над всем возможным вариантом индекс dokumented here

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

Одним из вариантов влияния производительности может быть опция INCLUDE, в которой вы можете добавить дополнительные строки к уникальному индексу, которые не считаются определяющими уникальность, но могут использоваться для доступа только индекса. Усушливо для большинства людей важнее следовать концепции именования, делая это таким образом.

+0

Приятно слышать - так что вы могли бы отметить это как ответ, а затем - спасибо – MichaelTiefenbacher