**Describe the situation**
```
$ ./clickhouse-21.3.3 client --query "SELECT * FROM system.numbers_mt FORMAT Native" | pv > /dev/null
^C,1GiB 0:00:45 [ 710MiB/s] [                                                                                                                                                                                               <=>                      ]

$ ./clickhouse-21.3.3 client --compress 0 --query "SELECT * FROM system.numbers_mt FORMAT Native" | pv > /dev/null
^C,2GiB 0:00:12 [1,48GiB/s] [                                                   <=>                                                                                                                                                                  ]
```

{
    std::unordered_set<UInt64> file_indices_to_skip;
    if (Poco::File{current_batch_file_path}.exists())
    {
        
        Batch batch(*this, files);
        ReadBufferFromFile in{current_batch_file_path};
        batch.readText(in);
        file_indices_to_skip.insert(batch.file_indices.begin(), batch.file_indices.end());
        batch.send();
    }
    std::unordered_map<BatchHeader, Batch, BatchHeader::Hash> header_to_batch;
    for (const auto & file : files)
    {
        if (quit)
            return;
        UInt64 file_idx = file.first;
        const String & file_path = file.second;
        if (file_indices_to_skip.count(file_idx))
            continue;
        size_t total_rows = 0;