100 колонками ( из которых только одна в order by ), то в память поднимаются марки со всех колонок, что составляет почти 40 Гб.
Я ожидал, что в память будет подниматься только колонка из order by, а марки остальных колонок будут читаться уже с диска.
Возможно ли как то управлять поднятием в кэш марков?
И доп.вопрос: про таблицу "system.parts":
поля "marks_bytes" и "primary_key_bytes_in_memory_allocated" - это же те значения, которые составят кэш? это же разные непересекающиеся части кэша? Сумма "marks_bytes" со всех колонок как раз составляет 40 Гб.
Primary_key это значения первичного ключа и указатель на позицию в марках (.idx). Марки это указатели на позицию в файлах колонок (для каждой колонки .mrk (.mrk2)). Кеш марков 5гб. 40гб это что-то другое, это наверное сами строки, 65536 (max_block_size) строк в 100 колонках.
Обсуждают сегодня