Индекс на каждый внешний ключ? - PullRequest
2 голосов
/ 14 февраля 2011

Индекс на каждом внешнем ключе оптимизирует запросы?

Ответы [ 3 ]

10 голосов
/ 14 февраля 2011

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

Это волшебным образом не делает весь ваш запрос оптимизированным, но, безусловно, поможет улучшить производительность соединения между FK и его аналогом Primary Key.

0 голосов
/ 14 февраля 2011

Я провел небольшое тестирование по этому поводу, и я не обнаружил каких-либо улучшений производительности, но SQLMenace скажет вам иначе.Мое мнение, чтобы попробовать и посмотреть, работает ли он для вас.

0 голосов
/ 14 февраля 2011

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

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

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