This is “roll-your-own” logging but it does flush after messages, so you can use tail -f <path>
to see the progress. Using --log-level=profiling
will include a starting message for all queries to catch this particular issue.
You should see a message like this:
Starting - ExecuteQuery: SELECT ....
This will be written and flushed before the actual query is executed.
I think it was a good choice some 10+ years ago because it keeps the memory usage low and performs relatively fast B+ tree lookups. But it does not scale well with +1TiB backups which are more common today. I am aware of the scaling issues, and intend to work on it soon-ish.