我扩展了 PDO 类以创建一个简单的 DB 类,目前对所有运行到数据库的查询使用 prepare + execute,即使是那些没有参数的查询(例如 SELECT * FROM table)。
问题是:对于没有参数的简单查询实际使用 PDO::query 代替准备/执行是否有性能优势?
最佳答案
是的,因为当你调用 PDO::prepare
时,服务器必须为该查询创建一个查询计划和元信息,然后在你使用 时绑定(bind)指定参数会有额外的开销>PDO::执行
。因此,为了节省这种开销并提高性能,您可以使用 PDO::query
进行不带参数的查询。
但是,根据您的应用程序的规模和大小,以及您的服务器/主机配置(共享/私有(private)),您可能会或可能不会看到任何性能提升。
关于php - PDO::query 与 PDOStatement::execute(PHP 和 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9233256/