Мне было интересно, есть ли способ перехватывать параллельные запросы на сервере Apache / PHP. Таким образом мы можем потенциально повысить производительность нашего приложения. Чтобы проиллюстрировать мою точку зрения, вот пример:
Рассмотрим конечную точку: /add_post
, Он просто добавляет сообщение в базу данных. Представьте, что наш сервер получает 10 одновременных запросов. Это будет 10 разных запросов MySQL. Но если бы мы могли перехватывать эти входящие (параллельные) запросы, мы могли бы в принципе завершить работу, используя один запрос MySQL. И это, конечно, увеличит производительность. Или это будет?
Это не будет иметь заметного значения, если MySQL-сервер будет работать на той же машине или, по крайней мере, на машине в том же центре обработки данных, чтобы задержка не имела значения. MySQL очень быстр, и поэтому нет проблем с выполнением многих запросов.
Вместо этого вы должны попытаться ускорить загрузку и алгоритмы вашего PHP-приложения. Они оказывают гораздо большее влияние на производительность вашего сервера.
Для того, чтобы объединить запросы Apache / PHP, вы должны стоять на голове. Это потребует гораздо больше усилий и времени, чем вы можете сэкономить.
Другими словами, HTTP-запросы не зависят друг от друга. Объединение их — грязное, сложное и медленное.
Ваш другой вопрос … «Партии INSERTs
быстрее, чем отдельные вставки? «Ответ — да. Один INSERT
с 100 рядами работает в 10 раз быстрее, чем 100 однорядных INSERTs
, Но, повторяю, это не стоит делать в сценарии, который вы описываете.
Apache + PHP может легко обрабатывать десятки, а то и сотни веб-страниц в секунду. Если ваша реализация не может, то решение не пытаясь объединить страницы.