ОДНО уникальное значение в отсортированном списке; и то что список разбит на партиции - не повод искать во всех!
Получается использование партиций ОБЯЗЫВАЕТ меня всегда использовать предикат по ключу партиционирования или я теряю производительность
Или по-другому: партиционирование нивелирует эффект сортировки колонки
потому что партиция по дате а вы по ней не ищете а ищете по id который в primary key (это не то же самое что в MySQL Primary Key) откуда по вашему CH узнает в какой партиции надо искать конкретный ID? он возьмет все партиции и будет в них паралельно искать по засечкам пока не найдет засечку в которой возможно есть ваш id, потом возьмет уже колонку id и прочитает все блоки с данной засечкой чтобы уже найти точно засечки это грубо говоря значение primary key и набор смещений в файлах колонок которые в primary key где конкретное значнеие находится
партицирование не невелирует эффект но позволяет очень быстро отфильтровать и лучше сжимать по признаку партицирования если он не имеет рандомной природы
Ну так партиционирование разбивает таблицу на много маленьких таблиц, индекс тоже на много маленьких индексов. Кх в общем-то не предназначен для поиска по ключу. Но можно и партиционировать по выражению от ключа и уменьшать гранулярность индекса что бы сканировать меньше ненужных строк в разреженном индексе.
Обсуждают сегодня