индекс потом навесил, но всё же
https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/mergetree/#mergetree-column-ttl The TTL clause can’t be used for key columns.
Спасибо, можно я тогда ещё немного по глуплю и спрошу в чем различие первичного ключа от навешенного индекса? Т.е. будет ли разница между а) в create table укажу всего один первичный ключ на date, а остальные поля оставлю под индексом type minmax 4 granularity б) в create table укажу все колонки с первичным ключом
первичный ключ, а точнее индекс сортировки влияет также на сортировку, из-за чего индекс сильно эффективнее, чем индекс на рандомную последовательность. например, у вас есть даты за день, если сортировка оп дате, то индекс будет хранить минимальную и максимальную дату в каждой грануле, а если данные отсортированы по другому полю, то там в каждом блоке будет храниться интервал дат, который вообще никак не сократит выборку
minmax 4 granularity в secondary data skip это 4 гранулы первичного ключа. 32 тыщи записей... сортировка влияет на степень сжатия блоков внутри system.parts
Можно поставить minnax 1 granularity и получить тот же первичный ключ?
secondary Индексы будут кешироваться только средствами файлового кеша в OS я не знаю как именно работает система когда несколько secondary index на разные колонки и короткий PK савсем без PK нельзя когда в запросе 1-5 полей из PK и они низко кардинальные, тогда быстрее всего должно работать, потому что читается всего один индекс и быстро... и с помощью него быстро идет сканирование партов по остальным колонкам...
Хорошо, понял спасибо 🔥
Обсуждают сегодня