PDO :: запрос против PDOStatement :: execute (PHP и MySQL) - PullRequest
9 голосов
/ 10 февраля 2012

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

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

Ответы [ 2 ]

9 голосов
/ 10 февраля 2012

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

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

1 голос
/ 10 февраля 2012

Есть измеримая разница между выполнением двух разных способов в PHP.Вы должны оценить ценность каждого метода для вас и создать контрольные примеры, чтобы понять, стоит ли вам делать то или иным образом.

...