Индекс создается дважды для определенного столбца - PullRequest
1 голос
/ 17 ноября 2011
create table foo (id, name)
create table bar (id, foo_id, value, ...)

Мы создали отношение внешнего ключа для foo_id со ссылкой на foo(id), что, по-видимому, неявно создает индекс для того же столбца.У нас также есть требование создать составной индекс на основе foo_id, value в bar.

Имеет ли смысл декларировать индексы вышеупомянутым способом или есть способ оптимизировать создание индекса ввышеуказанный случай?

1 Ответ

1 голос
/ 17 ноября 2011

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

Когда речь идет о внешних ключах , это часть документации по ограничениям внешнего ключа :

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

Так что все в порядке с индексами, созданными при создании внешних ключей.

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