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

Как выполнить mysql запрос в php не дожидаясь его окончания?

Нужно выполнить запрос который длится довольно долго, результат запроса не важен. Нужно как нибудь запустить его параллельно либо запустить не дожидаясь результата…
  • Вопрос задан
  • 4850 просмотров
Подписаться 8 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 9
@shagguboy
Ответ написан
Комментировать
@gollum
Если это INSERT, то используйте INSERT DELAYED:
phpclub.ru/mysql/doc/insert-delayed.html
Ответ написан
Комментировать
@gollum
Также mysqlnd — MySQL native driver for PHP поддерживает асинхронные запросы.
www.php.net/manual/en/mysqli.poll.php
Ответ написан
Комментировать
@egorinsk
system('nohup script.php&') — что-то вроде этого, но это раюотает только в linux и создает лишнюю фоновую задачу нагрузку на БД.
Ответ написан
@MrCrock
Извращение конечно, но можно вынести его в отдельный скрипт, который будет дергаться cURL c временем ожидания ответа в 1 сек.
Ответ написан
Комментировать
Fastto
@Fastto
Используйте механизм очередей.

Смысл: когда вам нужно что-то выполнить «долгоиграющее» по определенным обстоятельствам или событиям, вы «помещаете в очередь на выполнение» определенную задачу. А сама очередь будет извлекать из стека задачи по одной и выполнять их. Это можно сделать например раз в минуту по крону специальным скриптом — крон-менеджером.

В качестве примера реализации можно посмотреть на таски симфони
Ответ написан
Комментировать
@Silver_Clash
Может имеется ввиду что после запуска долгоиграющего запроса нужно параллельно ему, не дожидаясь его результатов выполнять другие запросы?
Опишите структуру таблиц и тип запроса, это может быть важно для получения правильного ответа.
Ответ написан
shushu
@shushu
Если это DELETE то можно использовать DELETE LOW_PRIORITY…
Ответ написан
Комментировать
@aeryaguzov
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽