Я узнал о подготовленных заявлениях при создании Java-приложения с поддержкой JDBC, и мое приложение использует слой пула соединений, который гарантирует, что подготовленные операторы кэшируются на стороне сервера, и это дает преимущество в производительности.
Однако, с PHP все, что я прочитал, говорит, что они кэшируются только в течение срока службы загрузки страницы. Обычно я не повторяю один и тот же запрос много раз, но запускаю несколько разных запросов при заданной загрузке страницы, но повторяю их при загрузке нескольких страниц.
Поскольку мои PHP-процессы являются постоянными (т.е. они будут обслуживать сотни страниц за всю их жизнь, а не только одну, используя PHP-FPM), мне было интересно, будут ли они повторно использовать соединения с базами данных, а не размножаться и убивать их для каждого удара.
- Будет ли использование PHP-FPM с mysqli или PDO поддерживать соединения дольше, чем загрузка одной страницы?
- Если это не так, могу ли я это сделать?
- Если это так, или я делаю # 2, будет ли это продолжаться кеширование подготовленных операторов дольше, чем загрузка одной страницы?
Edit:
Просто, чтобы уточнить, я не говорю о кеше запросов, который является еще одним зверем, или кэширует вывод запросов. Я хочу кэшировать скомпилированный подготовленный оператор и его план выполнения на стороне сервера.