Пустые результаты множественного запроса PHP mysqli

#php #sql #mysqli #mysqli-multi-query

#php #sql #mysqli #mysqli-с несколькими запросами

Вопрос:

Я использую mysqli multi query для выполнения некоторых вставок и обновлений одним большим куском вместо того, чтобы выполнять их во множестве отдельных запросов, в принципе, меня не волнуют результаты, даже если это ошибка, и я прочитал на PHP.net страница документа для функции multi_query, я могу использовать это:

 while ($mysqli->next_result()) {;}
  

чтобы просмотреть результаты, чтобы я мог выполнять больше запросов. Но проблема здесь, похоже, в том, что выполнение каждого цикла этого занимает целую вечность, если я заменяю; на echo "Next"; , между каждым следующим повторением проходит примерно полсекунды.

Как-нибудь я могу ускорить это, или очистить результаты, или что-то в этом роде?

Комментарии:

1. Как выглядят ваши запросы? Попробуйте оптимизировать свою базу данных.

2. Это не очень большие запросы, просто вставка / обновление нескольких целых чисел в базе данных. Но иногда в строке, которую я передаю в multi_query, содержится много запросов. В таблице много строк, может ли это что-то изменить? (~220,000)

3. Я думаю, что это могло бы каким-то образом, поэтому я также предложил запустить optimize в вашей базе данных.

4. Просто попробовал это, и, к сожалению, это не имело никакого значения

5. использовали ли вы точную настройку, отображаемую на PHP.net ? http://php.net/manual/en/mysqli.multi-query.php — если нет, попробуйте, так что, если вы это сделали, я думаю, вам нужно оптимизировать данные (базу), по которым вы выполняете запрос.

Ответ №1:

Вы могли бы попробовать использовать

 UPDATE LOW_PRIORITY ...
  

И

 INSERT DELAYED ...
  

Если вы используете механизм хранения MyISAM