Индекс SQL по внешнему ключу - PullRequest
0 голосов
/ 22 мая 2018

Когда я соединяю 2 таблицы tbl1, tbl2 на column1, где column1 - первичный ключ на tbl1.Предполагая, что column1 не индексируется автоматически, я должен создать индекс как для tbl1.column1 и tbl2.column1, так и для tbl2.column1.Влияет ли количество строк в каждой таблице на этот выбор?

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Первичный ключ автоматически индексируется .Обойти это невозможно (именно так реализуется «уникальная» часть уникального ограничения).Итак, tbl1.column1 имеет индекс.Никаких других индексов не требуется.

Что касается tbl2.column2, у вас, вероятно, должен быть индекс по этому вопросу.MySQL создает индекс, если вы явно объявляете отношение внешнего ключа.Таким образом, при явном объявлении никакой другой индекс не требуется.Примечание: это относится не ко всем базам данных.

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

0 голосов
/ 22 мая 2018

Обычно да, потому что часто вы захотите сделать обратное объединение в какой-то момент.

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