The writer is incorrect. MySQL doesn't wait for query execution to finish to start sending rows, unless it has to. For a SELECT with no WHERE, it definitely doesn't have to (ORDER BY requiring a sort step is one case where it does). However, the default behavior of most (all I've ever run in to) MySQL clients is to buffer the entire result set before returning, to minimize the time the server spends executing the statement and holding locks.