提问人:allanc 提问时间:11/27/2008 更新时间:6/22/2011 访问量:1670
MySQL 准备的查询是否为每会话一次查询提供性能优势?
Do MySQL prepared queries provide a performance benefit for once-per-session queries?
问:
根据文档,如果您多次运行查询,则准备好的查询将提供显着的性能优势,因为 MySQL 服务器解析查询的开销仅发生一次。我想知道他们在那里所说的“多次”到底是什么意思。
即,假设您有一个运行一次查询的网页。现在假设该页面每秒被调用 50 次。从性能的角度来看,准备()查询(因此需要两次往返数据库服务器;一次用于准备查询,一次用于运行查询)或仅正常发送查询(只需要一次往返)是否更有意义?MySQL 和/或 PHP mysqli 驱动程序是否足够智能,可以在之前的调用中意识到查询何时是 prepare()?
答:
7赞
Bill Karwin
11/27/2008
#1
不。PHP 是一种“无共享”架构,因此与一个请求(一个页面视图)相关的每个资源都会在该请求结束时被丢弃。准备好的查询不可用于后续数据库连接。
您将从准备好的查询中获益的场景是,当您准备它并在同一 PHP 请求中多次执行它时。
评论