read_in_order_two_level_merge_threshold
Минимальное количество частей, которое нужно прочитать для запуска этапа предварительного слияния при многопоточном чтении в порядке первичного ключа.read_in_order_use_buffering
Использовать буферизацию перед слиянием при чтении в порядке первичного ключа. Это повышает параллелизм выполнения запросаread_in_order_use_virtual_row
Использовать виртуальную строку при чтении в порядке первичного ключа или его монотонной функции. Это полезно при поиске по нескольким частям, поскольку читаются только те части, которые действительно могут повлиять на результат, а ограниченное окно предварительного чтения размером не болееmax_threads частей сохраняет параллельность чтения.
read_in_order_use_virtual_row_per_block
Если этот параметр включен вместе сread_in_order_use_virtual_row, после чтения каждого блока выводится виртуальная строка (а не только в начале каждой части).
Это позволяет MergingSortedTransform чаще переприоритизировать источники, что полезно, когда нижестоящие фильтры отбрасывают много строк, а данные распределены по частям неравномерно.
Обратите внимание, что при этом отключается оптимизация read_in_order_use_buffering и предварительное слияние (read_in_order_two_level_merge_threshold) при чтении.