Влияние индекса на разные столбцы при объединении - PullRequest
0 голосов
/ 28 мая 2019

Допустим, у нас есть две таблицы - таблица A и таблица B, в каждой из которых по 5 миллионов записей. У них есть общие поля, идентификатор и имя. Я хочу проверить, как повлияет индекс, если мы применим к полю соединения при соединении таблиц, и как повлияет индекс на столбец выбора при соединении таблиц. ниже запрос

select t1.name from table A t1 inner join table B t2 on t1.id=t2.id;

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

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

ищет улучшения производительности

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

1 Ответ

0 голосов
/ 28 мая 2019

Для этого запроса:

select t1.name
from tableA t1 inner join
     tableB t2
     on t1.id = t2.id;

Я бы ожидал, что лучший индекс будет tableB(id).Этот ключ используется для JOIN.

. При некоторых обстоятельствах индекс на tableA(id, name) может быть лучшей альтернативой.Это было бы особенно верно, если бы tableA было намного больше, чем tableB.

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