date как Date MATERIALIZED toDate(ts)
Вот как определяется движок
ENGINE = MergeTree(date, (ts, ...), 8192)
Вопрос, как эффективней запрашивать данные по дням? Сначала пробовал делать фильтр по ts, но потом попробовал применять date в условии, стало гораздо быстрее. Но вот вопрос в том, где использовать этот фильтр, в секции prewhere или where? Если сравнить скорость выполнения, то +-секунды одинаковое время запросов
>в секции prewhere или where без разницы для ключа партиционирования и почти всегда без разницы для primarykey вы бы перешли уже в 21 век из 18го. И выкинули старое партиционирование и тогда не нужно было бы делать такие извращения с date ENGINE = MergeTree partition by toYYYYMM(ts) order by ts и не используйте prewhere если не понимаете, проблема в том что когда вы используете prewhere вы автоматически выключаете optimize_move_to_prewhere
Обсуждают сегодня