Существует таблица с паркетным форматом данных 20 ГБ, и простой запрос даст результаты, отсканировав только 1 ГБ данных. select columns from table1 where id in (id1, id2, idn)
Если тот же запрос выполняется с подзапросом, таким как - select columns from table1 where id in (select id from table2 limit n)
Этот запрос даст результаты при сканировании 20 ГБ, всей таблицы. Даже n - очень маленькое число, равное 10, 50 или 5000.
То же самое происходит с LEFT JOIN.
SELECT table1.* FROM
table2 LEFT JOIN table1
ON table2.id=table1.id
Есть ли способ достичь этого, выполнив один запрос вместо выборки и сохраняя результат подзапроса и передавая его как аргументы в другой запрос? Какие-либо передовые практики того, как в настоящее время пользователи выполняют LEFT JOIN или подзапрос без полного сканирования таблиц в Афине?
Похожие вопросы- Вопрос -1 , Вопрос -2