DrunkMaster
@DrunkMaster

Как понять доки MySQL?

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

Каким образом появится возможность раньше снять блокировку? Что мы 10 тыс. записей выбираем и юзеру отдаём, что 10 тыс. записей выбираем, накапливаем во временной таблицу-буфере и потом отдаём. На выборку-то всё равно вроде как одинаковое время уйдёт. В чём профит?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
Сама выборка данных (внутри БД) будет происходить в обоих случаях одинаково.
Но не стоит забывать что БД должна выбрать результат а потом ОТПРАВИТЬ результат клиенту, к примеру php-скрипту. На эту отправку так же уходит время, особенно если БД и скрипт расположены на разных серверах. Благодаря временной таблице БД может снять блокировку не дожидаясь конца отправки данных, т.к. отправка будет происходить из временной таблицы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы