он столько памяти съел? Вроде бы для query_thread_log мерджи должны быть простыми: читаем потоково - одноврмененно пишем, потребление памяти должно быть примерно равно block_size * размер строки * количество частей выбранных для слияния. А тут получилось что весь результат зачем-то в память собирает, вместо того чтоб сразу на диск писать.
block_size? в смысле 65 тыс. строк? Тогда возможно сходится там всего 303 тыс строк и 8 потоков.
Весь результат в оперативке не держится, всё как вы написали - по одному блоку на каждый кусок. Размер блока для мержа - 8192 строки. Почему потребляется много оперативки - возможно из-за того, что там "толстые" строки. Это может быть для ProfileEvents.Names, но судя по рассчёту, до такого размера всё-таки не должны дотягивать.
Обсуждают сегодня