Schema
```
ATTACH TABLE default.test (`col1` UUID, `col2` LowCardinality(String)) ENGINE = MergeTree ORDER BY (col1, col2) SETTINGS index_granularity = 128;
```

Data sample: https://www.dropbox.com/s/untu96ad69a2thl/test_data.tar.gz?dl=0

Query:
```
echo "SELECT col1, col2 FROM test PREWHERE col1 = '042fecec-ea68-1b26-00a4-a4f3b3987574'" | clickhouse-benchmark -c 1 -i 2000 -d 0 
```

Results - look on QPS metric:

```
### 20.1.16.120
Loaded 1 queries.

Queries executed: 2000.

localhost:9000, queries 2000, QPS: 597.941, RPS: 76536.485, MiB/s: 1.168, result RPS: 0.000, result MiB/s: 0.000.

0.000%		0.001 sec.	
10.000%		0.001 sec.	
20.000%		0.002 sec.	
30.000%		0.002 sec.	
40.000%		0.002 sec.	
50.000%		0.002 sec.	
60.000%		0.002 sec.	
70.000%		0.002 sec.	
80.000%		0.002 sec.	
90.000%		0.002 sec.	
95.000%		0.002 sec.	
99.000%		0.002 sec.	
99.900%		0.003 sec.	
99.990%		0.015 sec.
### 20.3.2.1

Loaded 1 queries.

Queries executed: 2000.

localhost:9000, queries 2000, QPS: 322.157, RPS: 41236.084, MiB/s: 0.629, result RPS: 0.000, result MiB/s: 0.000.

0.000%		0.001 sec.	
10.000%		0.003 sec.	
20.000%		0.003 sec.	
30.000%		0.003 sec.	
40.000%		0.003 sec.	
50.000%		0.003 sec.	
60.000%		0.003 sec.	
70.000%		0.003 sec.	
80.000%		0.003 sec.	
90.000%		0.003 sec.	
95.000%		0.004 sec.	
99.000%		0.004 sec.	
99.900%		0.016 sec.	
99.990%		0.017 sec.

## 20.6.3.28

Loaded 1 queries.

Queries executed: 2000.

localhost:9000, queries 2000, QPS: 308.133, RPS: 39441.007, MiB/s: 0.602, result RPS: 0.000, result MiB/s: 0.000.

0.000%		0.001 sec.	
10.000%		0.002 sec.	
20.000%		0.003 sec.	
30.000%		0.003 sec.	
40.000%		0.003 sec.	
50.000%		0.003 sec.	
60.000%		0.003 sec.	
70.000%		0.003 sec.	
80.000%		0.004 sec.	
90.000%		0.004 sec.	
95.000%		0.004 sec.	
99.000%		0.004 sec.	
99.900%		0.016 sec.	
99.990%		0.017 sec.
```

Bisecting on releases: 
v20.2.1.2442-testing (21-Feb-2020 18:15) - last good
v20.3.1.2495-testing (26-Feb-2020 18:27) - first bad

ps. experimental_use_processors don't change the situation. 

auto buffer = std::make_unique<CachedCompressedReadBuffer>(
            fullPath(disk, path_prefix + data_file_extension),
            [this, buffer_size, sum_mark_range_bytes, &settings]()
            {
                return disk->readFile(
                    path_prefix + data_file_extension,
                    buffer_size,
                    sum_mark_range_bytes,
                    settings.min_bytes_to_use_direct_io,
                    settings.min_bytes_to_use_mmap_io);
            },
            uncompressed_cache);
        if (profile_callback)
            buffer->setProfileCallback(profile_callback, clock_type);
        cached_buffer = std::move(buffer);
        data_buffer = cached_buffer.get();
    }
    else
    {
        auto buffer = std::make_unique<CompressedReadBufferFromFile>(
            disk->readFile(path_prefix + data_file_extension, buffer_size,
                sum_mark_range_bytes, settings.min_bytes_to_use_direct_io, settings.min_bytes_to_use_mmap_io)
        );
        if (profile_callback)
            buffer->setProfileCallback(profile_callback, clock_type);
        non_cached_buffer = std::move(buffer);
        data_buffer = non_cached_buffer.get();
    }
}
void MergeTreeReaderStream::seekToMark(size_t index)