механизм работы оптимизатора КХ. Например если я сделал представление и в запросе к нему передаю дополнительные условия для фильтрации - то оптимизатор перемещает эти условия внутрь подзапроса из которого состоит представление? Бенчмарк показывает примерно одинаковый результат, но хотелось бы теорию понять.Судя по тому что пишет EXPLAIN все таки выполняется подзапрос полностью, а потом применяются к результату фильтры. В основном работал до этого с PG, и в доках очень подробно описаны такие моменты. Кто может подсказать?
Кто-то поможет?
ну, простой ответ весовых оптимизаторов в clickhouse нет есть некоторые AST оптимизации в частности push down where в каких то случаях но не много поэтому в 90% случаев проще считать "как запрос написали так его и будут исполнять" EXPLAIN SYNTAX посмотрите
здесь часто пишут с проблемой что условия не прокидываются внутрь и запросы с view работают медленее
https://clickhouse.com/docs/ru/operations/settings/settings/#enable-optimize-predicate-expression, Нашел что прокидываются. Да и план в итоге показал что прокидывает оптимизатор условия в подзапрос.
Обсуждают сегодня