MySQL准备好的查询是否为每次会话一次的查询提供了性能优势?

时间:2008-11-26 22:02:56

标签: php mysql mysqli prepared-statement mdb2

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

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

1 个答案:

答案 0 :(得分:7)

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

您可以从准备好的查询中获益的情况是在准备它并在相同的PHP请求期间多次执行时。