В доках к SELECT есть такие строки:
При указании параметра SQL_BUFFER_RESULT MySQL будет заносить результат во временную таблицу. Таким образом MySQL получает возможность раньше снять блокировку таблицы; это полезно также для случаев, когда для посылки результата клиенту требуется значительное время.
Каким образом появится возможность раньше снять блокировку? Что мы 10 тыс. записей выбираем и юзеру отдаём, что 10 тыс. записей выбираем, накапливаем во временной таблицу-буфере и потом отдаём. На выборку-то всё равно вроде как одинаковое время уйдёт. В чём профит?