PDO :: query vs. PDOStatement :: execute (PHP и MySQL)

Я расширил класс PDO для создания простого класса DB и в настоящее время использую prepare + execute для всех запросов, запускаемых в базу данных, даже те, у которых нет параметров (например, таблица SELECT * FROM).

Возникает вопрос: есть ли преимущество в производительности для использования PDO :: query для простых запросов, у которых нет параметров, а не для подготовки / выполнения?

Да, потому что, когда вы вызываете PDO::prepare , сервер должен создать план запроса и метаинформацию для этого запроса, тогда есть дополнительные накладные расходы для привязки указанных параметров при использовании PDO::execute . Таким образом, чтобы сохранить эти накладные расходы и повысить производительность, вы можете использовать PDO::query для запросов без параметров.

Однако, в зависимости от масштаба и размера вашего приложения, а также от конфигурации сервера / хоста (общий / закрытый), вы можете или не видите никакого увеличения производительности вообще.

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