Я выполняю MySQL-запрос в php, который возвращает много данных и занимает некоторое время для запуска. Чтобы запустить этот запрос, я должен сказать mysql не буферизовать запрос.
Я использую курсор mysql для обработки запроса во время его выполнения, что позволяет мне значительно сэкономить на использовании памяти.
Чтобы использовать курсор, я должен установить MYSQL_ATTR_USE_BUFFERED_QUERY = false
.
Например:
// Turn off mysql buffering
DB::connection()->getPdo()->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
$complexQuery->cursor();
// Turn mysql buffering back on
DB::connection()->getPdo()->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
Выполнение этого запроса занимает около 12 секунд. Я хочу знать, если в это время другие сеансы также имеют MYSQL_ATTR_USE_BUFFERED_QUERY = false
или это определенное соединение?