У меня есть таблица T1 с 60 строками и 5 столбцами: ID1, ID2, info1, info2, info3.
У меня есть таблица T2 с 1,2 миллионами строк и еще 5 столбцами: ID3, ID2, info4, info5, info6.
Я хочу получить (ID1, ID2, info4, info5, info6) из всех строк, где ID2 совпадают.В настоящее время мой запрос выглядит так:
SELECT T1.ID1, T2.ID2,
T2.info4, T2.info5, T2.info6
FROM T1, T2
WHERE T1.ID2 = T2.ID2;
Это займет около 15 секунд.У меня вопрос - должно ли это занять много времени, а если нет, как я могу ускорить его?Я полагаю, что не должно, так как T1 такой маленький.
Я попросил PostgreSQL ОБЪЯСНИТЬ запрос, и он говорит, что он хэширует T2, а затем хеш-соединения, которые хэшируют с T1.Кажется, хэширование T2 занимает столько времени.Есть ли способ написать запрос, чтобы он не хэшировал T2?Или есть способ, чтобы он кешировал хэш T2, чтобы он не делал это заново?Таблицы будут обновляться только каждые несколько дней.
Если это имеет значение, T1 - временная таблица, созданная ранее в сеансе.