2012-02-10 4 views
8

私は単純なDBクラスを作成するためにPDOクラスを拡張し、データベースに対して実行されるすべてのクエリに対してprepare + executeを使用します。パラメータを持たない(例えば、SELECT * FROMテーブル)。PDO :: queryとPDOStatement :: execute(PHPとMySQL)

質問は、準備/実行の代わりに、パラメータを持たない単純なクエリに対して実際にPDO :: queryを使用するとパフォーマンスが向上するのでしょうか?

+1

@summea実際には両方とも 'PDOStatement'を返します。あなたは' PDO :: exec'を考えていますが、ここで問題にはなりません。 – pmm

+0

良い点;私はいつもそれらを混ぜる... – summea

答えて

8

PDO::prepareを呼び出すと、サーバーはそのクエリのクエリプランとメタ情報を作成しなければならないため、PDO::executeを使用すると、指定されたパラメータをバインドするオーバーヘッドが発生します。したがって、このオーバーヘッドを節約してパフォーマンスを向上させるには、パラメータなしのクエリに対してPDO::queryを使用できます。

ただし、アプリケーションの規模とサイズ、およびサーバー/ホスト構成(共有/プライベート)によっては、パフォーマンスの向上が全く見られない場合もあります。

1

PHPで2つの異なる方法を実行することとの間には、大きな違いがあります。それぞれの方法が持っている価値を評価し、テストケースを作成して、それがあなたのために何かを行う価値があるかどうかを確認する必要があります。

関連する問題