Как из PHP выполнить длительный запрос к mySQL?
Самый лучший вариант, это же конечно реализация очередей;
Самый же простой вариант, написание отдельного скрипта с этим запросом отдельно, этот скрипт дергать (запускать в фоновом режиме php.net/manual/ru/function.exec.php#86329 ) через основной скрипт, с помощью специальных функций, к примеру exec;
Самый сложный вариант оптимизировать запрос;
1. Вывод осуществляется в файл из БД напрямую или проводятся какие-то манипуляции с данными с помощью РНР и только потом это пишется в файл? Суть в том, что может РНР и не нужен вообще?
2. Скрипт РНР можно запустить в консоли, не обязательно его запускать в браузере.
3. Можно увеличить время жизни скриптов с помощью установок.
4. Запустить скрипт и отправить его в фоновый режим работать до тех пор пока он не завершит свою работу.