2012-02-10 116 views
8

我已經擴展了PDO類來創建一個簡單的數據庫類,並且當前使用準備+執行所有查詢運行到數據庫,甚至那些沒有參數(例如SELECT * FROM表)。PDO ::查詢與PDOStatement ::執行(PHP和MySQL)

問題是:對於沒有參數而不是準備/執行的簡單查詢實際使用PDO :: query是否有性能優勢?

+1

@summea其實都返回'PDOStatement',你正在考慮'PDO :: exec',但這不是一個問題。 – pmm 2012-02-10 20:01:08

+0

好點;我總是把這些混在一起...... – summea 2012-02-10 20:06:54

回答

8

是的,因爲當你調用PDO::prepare,服務器必須創建一個查詢計劃,該查詢元信息,再有就是當你使用PDO::execute綁定指定的參數額外的開銷。因此,爲了節省這些開銷並提高性能,可以使用PDO::query來查詢不帶參數的查詢。

但是,根據您的應用程序的規模和大小,以及您的服務器/主機配置(共享/私有),您可能看不到任何性能提升。

1

在PHP中執行任何一件事情的兩種不同方式之間存在可衡量的差異。你應該評估每種方法對你的價值,並創建測試用例,看看它是否值得你以某種方式做事。