【问题标题】:PDO::query vs. PDOStatement::execute (PHP and MySQL)PDO::query 与 PDOStatement::execute(PHP 和 MySQL)
【发布时间】:2012-03-03 05:53:33
【问题描述】:

我已经扩展了 PDO 类以创建一个简单的 DB 类,并且目前对运行到数据库的所有查询使用准备 + 执行,即使是那些没有参数的查询(例如 SELECT * FROM 表)。

问题是:对于没有参数的简单查询,而不是准备/执行,实际使用 PDO::query 是否有性能优势?

【问题讨论】:

  • @summea 实际上两者都返回PDOStatement,您正在考虑PDO::exec,但这不是问题。
  • 好点;我总是把它们混在一起......

标签: php mysql pdo prepared-statement


【解决方案1】:

是的,因为当您调用PDO::prepare 时,服务器必须为该查询创建一个查询计划和元信息,那么当您使用PDO::execute 时绑定指定的参数会有额外的开销。因此,为了节省这种开销并提高性能,您可以将PDO::query 用于不带参数的查询。

但是,根据您的应用程序的规模和大小,以及您的服务器/主机配置(共享/私有),您可能会也可能不会看到任何性能提升。

【讨论】:

    【解决方案2】:

    在 PHP 中以两种不同的方式做任何一件事之间存在可衡量的差异。您应该评估每种方法对您的价值并创建测试用例,看看是否值得您以一种或另一种方式做事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 2019-04-11
      • 2012-07-08
      • 2015-07-25
      • 2016-04-12
      • 1970-01-01
      相关资源
      最近更新 更多