Задать вопрос

Как из PHP выполнить длительный запрос к mySQL?

Есть большая mySQL база, запрос может выполняться до нескольких минут, результат сохраняется в файл.

Необходимо выполнять его из PHP, а время выполнения PHP скрипта обычно ограниченно 30 секундами. Поэтому, просто выполнять запрос не выйдет - будет timeout.

Как это сделать?
P.S. Я подозреваю, что вопрос очень примитивный. Но и с PHP до этого я не работал практически. Посоветуйте, где можно найти информацию о решении этого вопроса.

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

или выводите данные частями
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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