根据文档,如果您多次运行查询,准备好的查询会提供显着的性能优势,因为解析查询的MySQL服务器的开销只发生一次.我想知道他们在那里"多次"是什么意思.
即,假设您有一个运行查询一次的网页.现在说该页面每秒被调用50次.从性能角度来看,准备()查询是否更有意义(因此需要两次往返DB服务器;一个准备查询,一个运行它)或者只是正常发送查询(只需要一次往返) ?MySQL和/或PHP mysqli驱动程序是否足够聪明,以便在先前的调用中查询是否为prepare()?
不.PHP是一种"无共享"架构,因此在该请求结束时会丢弃与一个请求相关联的每个资源(一个页面视图).准备好的查询不适用于后续数据库连接.
您可以从准备好的查询中获益的情况是在准备它并在同一PHP请求期间多次执行时.