**Describe the situation**

```
SELECT * FROM test.hits INTO OUTFILE 'dump.csv' FORMAT CSV

8873898 rows in set. Elapsed: 32.487 sec. Processed 8.87 million rows, 8.46 GB (273.15 thousand rows/s., 260.42 MB/s.)
```

is bounded by single CPU core. Too slow :(
String text;
    if (is_multiquery)
        text = getQueryTextPrefix(
    if (config().has("query"))
    {
        text += config().getRawString("query" /// Poco configuration should not process substitutions in form of ${...} inside query.
    }
    else
    {
        /// If 'query' parameter is not set, read a query from stdin.
        /// The query is read entirely into memory (streaming is disabled).
        ReadBufferFromFileDescriptor in(STDIN_FILENO
        readStringUntilEOF(text, in
    }
    if (query_fuzzer_runs)
        processWithFuzzing(text
    else
        processQueryText(text
}
void ClientBase::clearTerminal()
{
    /// Clear from cursor until end of screen.
     terminal.
    /// Show cursor. It can be left hidden by invocation of previous programs.
    /// A test for this feature: perl -e 'print "x"x100000'; echo -ne '\033[0;0H\033[?25l'; clickhouse-client
    std::cout << "\033[0J"
                    "\033[?25h";
}
void ClientBase::showClientVersion()
{