#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