begemot_sun
@begemot_sun
Программист в душе.

Как mysql отправляет большие данные в response?

Назрела необходимость потюнить текущий код, и выбор пал на обработку результатов запроса в процессе получения пакетов от MySQL.
Т.е. большинство клиентских либ собирают от MySQL результат полностью, и передают его на обработку в пользовательский код, а хочется обрабатывать сразу по мере поступления.

Вопрос состоит в том: как быть увереным что MySQL передает часть результата сразу по мере его получения или же ждет результат и отправляет его только тогда, когда он полностью найден (тупой это путь, но проверить надо) ?
Может есть какие настройки непосредственно в MySQL связанные с партиционированием результирующих данных ?

Спасибо.
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ответы на вопрос 1
ubernoob
@ubernoob
Не это?
При указании параметра SQL_BUFFER_RESULT MySQL будет заносить результат во временную таблицу. Таким образом MySQL получает возможность раньше снять блокировку таблицы; это полезно также для случаев, когда для посылки результата клиенту требуется значительное время.

И ещё:
Параметр SQL_BIG_RESULT можно использовать с GROUP BY или DISTINCT, чтобы сообщить оптимизатору, что результат будет содержать большое количество строк. Если указан этот параметр, MySQL при необходимости будет непосредственно использовать временные таблицы на диске, однако предпочтение будет отдаваться не созданию временной таблицы с ключом по элементам GROUP BY, а сортировке данных.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы