Как уже сказали, вы не там смотрите. 1 млн — это немного, и запрос, даже с JOIN — очень простой, любая СУБД должна проглатывать его не поперхнувшись.
Скорее всего, вам надо тюнить настройки своей БД, там явно что-то не в порядке. Вот, например, статья для PostgreSQL:
https://ruhighload.com/%D0%A2%D1%8E%D0%BD%D0%B8%D0...
Еще подобные статьи не раз публиковались на Хабрахабре.
Для начала надо показать здесь вывод
EXPLAIN ANALYZE
запроса (или аналог для вашей СУБД).