Вход на сайт
Вопрос знатокам PHP
1313 просмотров
Перейти к просмотру всей ветки
в ответ R1111 28.02.21 16:30
Тут дело не в PHP, а в MySQL.
Производительность в твоем update-запросе зависит от того, насколько быстро БД локализирует необходимую строку в таблице. Даже если у тебя есть индексы на столбцах flag и zapros, в лучшем случае будет использоваться только один (flag). LIKE с % в начале шаблона не может использовать индексы. См также. https://dev.mysql.com/doc/refman/5.7/en/using-explain.html
У MySQL есть Full-Text Search Functions. Попробуй воспользоваться этим.
Кроме того, php-код ничего не делает, кроме как обновляет БД. Всю эту операцию можно перенести в хранимую процедуру, тем самым ты выиграeшь на overhead'е коммуникации php <-> mysql.
Ну и по php:
$mass=mysqli_fetch_array($e, MYSQLI_ASSOC); do { } while ($mass=mysqli_fetch_array($e, MYSQLI_ASSOC));
не верно. Должно быть так:
while ($mass=mysqli_fetch_array($e, MYSQLI_ASSOC)) { }