Обеспечивают ли подготовленные MySQL запросы повышение производительности для запросов, выполняемых один раз за сеанс?

StackOverflow https://stackoverflow.com/questions/322319

Вопрос

Согласно документации, подготовленный запрос обеспечивает значительный выигрыш в производительности, если вы выполняете запрос несколько раз, поскольку накладные расходы сервера MySQL на синтаксический анализ запроса происходят только один раз.Мне интересно, что именно они там подразумевают под «несколько раз».

То есть предположим, что у вас есть веб-страница, на которой один раз выполняется запрос.Теперь предположим, что эта страница вызывается 50 раз в секунду.Имеет ли смысл с точки зрения производительности подготовить() запрос (тем самым требуя двух обращений к серверу БД;один для подготовки запроса, другой для его запуска) или просто отправить запрос в обычном режиме (для чего требуется только один обратный путь)?Достаточно ли умен MySQL и/или драйвер PHP mysqli, чтобы понять, когда запрос был подготовлен() в предыдущем вызове?

Это было полезно?

Решение

Нет.PHP представляет собой архитектуру «ничего общего», поэтому каждый ресурс, связанный с одним запросом (одним просмотром страницы), отбрасывается в конце этого запроса.Подготовленные запросы недоступны для последующих подключений к базе данных.

Сценарий, в котором вы получите выгоду от подготовленного запроса, заключается в том, что вы готовите его и выполняете много раз в течение тот же PHP-запрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top