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