период. Всего nls порядка 11к значений. Как это сделать более оптимальнее?
select nls, count() from table where day BETWEEN '2019-06-01' and '2019-06-30' and nls in (bla,bla) group by nls.
Если в in запихать 100 значений, запрос выполняется 10минут.
table - Distributed таблица. У шардов - ENGINE = MergeTree() PARTITION BY toMonday(day) ORDER BY (day, timestamp) SAMPLE BY timestamp SETTINGS index_granularity = 8192;
Идет фул скан в заданном периоде. И скорее всего значение в "строке" сравнивается с каждым в секции in
Обсуждают сегодня