reportDate DateTime,
processedDate DateTime,
userId Int64,
type Int8,
bounceEmail String,
bounceDomain String,
fromEmail String,
fromDomain String,
messageId String,
subject String,
code String,
customField String)
ENGINE = MergeTree(date, (userId, type, processedDate), 8192)
и запрос вида:
select bounceDomain, count() as total from bounce where type = 1 group by bounceDomain order by total desc limit 10
Нужно ли добавлять bounceDomain в индекс? При тестировании не заметил в разности в скорости.
Нет. Т.к. запросу не нужна фильтрация по этому полю
Тут есть вопрос к Яндексу. Если бы эта колонка стояла где-то в начале первичного ключа, то можно было бы существенно ускорить group by, так как данные уже частично отсортированы. Это называется pipelined group by. Насколько я понимаю, ClickHouse так не делает, хотя мог бы.
Обсуждают сегодня