Создать индекс по столбцам

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


person Mahesh KP    schedule 22.02.2011    source источник
comment
Проблемы с производительностью? Нет. Проблемы с целостностью данных? да.   -  person The Scrum Meister    schedule 22.02.2011
comment
Заголовок и вопрос не совпадают. Заголовок: индекс по внешнему ключу, Вопрос: индексирование этих столбцов без указания внешнего ключа Пожалуйста, обновите, о чем ваш вопрос.   -  person The Scrum Meister    schedule 22.02.2011
comment
Не беспокойтесь о производительности - вам следует беспокоиться о ссылочной целостности! ПОЧЕМУ нет ограничений внешнего ключа?!?!? Исправьте это в первую очередь, прежде чем беспокоиться о производительности ....   -  person marc_s    schedule 22.02.2011


Ответы (2)


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

Не определяя ограничение внешнего ключа для столбца, который предположительно действует как внешний ключ в вашей БД, вы, вероятно, столкнетесь с проблемами целостности данных, как уже упоминалось в @The scrum.

person Sachin Shanbhag    schedule 22.02.2011

Зависит от оптимизатора запросов. Оптимизаторы могут делать определенные предположения, когда знают об ограничениях внешнего ключа. Раньше была ошибка в оптимизаторе SQL Server, связанная с предположения.

Но проблема не в производительности запросов. Целостность данных - реальная проблема.

Важно ли действительно быстро получить неправильный ответ?

person Mike Sherrill 'Cat Recall'    schedule 22.02.2011