комбинацией enum? К примеру, есть поле описывающее категорию события. Каждое событие (каждая строка таблицы) может иметь одну или несколько категорий. Таблица широкая, >500 колонок. В ней 5 колонок которые хотелось бы видеть как комбинацию enum. Эти колонки будут участвовать в запросах, так что по ним нужны и индексы. Пока не понял что эффективнее взять - LowCardinality, набор bool колонок, array. В планах самому измерить, но наверняка кто-то сталкивался.
в чем то LowCardinality это и есть enum просто свой словарь на каждый data part массивы нет смысла брать если вы не знаете зачем конкретно они вам нужны
насчет "индексы должны быть" если поле low cardinality и действительно кардинальность низкая время есть какое то в таблице?
Да, время есть, это временной ряд по сути
ну тогда стандартный совет PARTITION BY toYYYYMM(datetime_field) PRIMARY KEY datetime_field, несколько_полей_по_степени_увеличения_кардинальности_значений все поля измерений строковые засовывать LowCardinality(String) высоко кардинальные поля типа UUID лучше менять на что нибудь типа snowflakeid или sonyflakeid
Обсуждают сегодня