Проверка первичного ключа
Создание таблицы
toUnixTimestamp(timestamp).
Загрузка данных
Базовая фильтрация
49.15 thousand. Обратите внимание, что это лишь часть от общего числа в 100 млн строк.
EXPLAIN indexes=1:
8012 составляет лишь часть от общего числа 12209. Раздел, выделенный ниже, подтверждает, что используется первичный ключ.
Фильтрация по ключам, расположенным позже в ключе сортировки, менее эффективна, чем по ключам, расположенным раньше в кортеже. Почему это так, см. здесь
Фильтрация по нескольким ключам
code и timestamp:
87 гранул.
Использование ключей при сортировке
EXPLAIN pipeline, что эта оптимизация здесь не используется:
MergeTreeSelect(pool: ReadPool, algorithm: Thread) здесь указывает не на использование оптимизации, а на обычное чтение. Это связано с тем, что в качестве ключа сортировки таблицы используется toUnixTimestamp(Timestamp), а НЕ timestamp. Устранение этого несоответствия решает проблему: