4

根据文档,如果您多次运行查询,准备好的查询会提供显着的性能优势,因为 MySQL 服务器解析查询的开销只发生一次。我想知道那里的“多次”到底是什么意思。

即,假设您有一个网页运行一次查询。现在假设该页面每秒被调用 50 次。从性能的角度来看,prepare() 查询是否更有意义(因此需要两次往返数据库服务器;一次准备查询,一次运行查询)或仅正常发送查询(只需要一次往返) ? MySQL 和/或 PHP mysqli 驱动程序是否足够聪明,可以意识到在之前的调用中何时准备()查询?

4

1 回答 1

7

不,PHP 是一种“无共享”架构,因此与一个请求(一个页面视图)关联的每个资源在该请求结束时都会被丢弃。准备好的查询不可用于后续的数据库连接。

您将从准备好的查询中受益的场景是当您准备它并在同一个 PHP 请求期间多次执行它时。

于 2008-11-26T22:06:33.883 回答