
Комментарии 6
Ого! Спасибо, очень интересно! Работаю с кликом, но так, больше интуитивно - подтяну матчасть.
Наш пример ORDER BY (visit_date, region_code, user_id) отлично это демонстрирует:
visit_date (самая низкая кардинальность): ~365 значений в году.
region_code (средняя кардинальность): десятки или сотни значений.
user_id (высокая кардинальность): миллионы значений.
Наверное visit_date поставили первым в ключе сортировки не из-за низкой кардинальности? она же выше, чем у region_code (если не отталкиваться от его типа UInt16)?
Да, верно)
Но стоит сказать, что дизайн ключа сортировки, основанный на кардинальности, это не единственный подход. Все сильно зависит от сценариев работы с таблицей.
Что касается самого кода региона, то тут подразумеваются и коды городов, населенных пунктов, поселков и т.д. Я поправлю материал, чтобы добавить прозрачности.
ClickHouse: разбираем MergeTree