2009-07-17 12 views
1

準備されたクエリがどのように機能するのか不思議に思っていました。私はPHPとMySQLを使用しています。準備されたクエリは、サーバー側でどのくらいの期間 "最後に"使用されますか?

私は、準備されたクエリがクエリをコンパイルし、その後、繰り返し使用するだけでパラメータを変更する必要があることがわかっているので、時間が節約されます。しかし、コンパイルされたクエリはどれくらいの期間有効ですか?どの時点で再評価する必要がありますか? PHPスクリプトが動いているかぎりですか?それとも、データベースへの接続が存在するかぎりですか?その場合、永続的な接続はそれに影響を与えますか?

答えて

4

ライグウィ、それらは接続の長さの間続く。

準備された文は、作成されたセッションに固有のものです。以前に準備されたステートメントの割り当てを解除せずにセッションを終了すると、サーバーはそのステートメントを自動的に割り振り解除します。

永続的な接続を使用していない場合、スクリプトの実行が終了するか、明示的に割り当てを解除するか、接続を閉じると、割り当てが解除されます。永続的な接続を使用している場合、同じ永続的な接続を使用して、複数のPHPセッションにわたって永続的な接続が維持されます。

+0

ダーン、もしあなたが最後に長く設定できるのであれば – Xeoncross

0

私が知る限り、準備されたクエリは、それを格納している変数がスコープ内にある限り、「持続」します。後で使用するために準備されたクエリをキャッシュする方法がいくつかあると思いますが、MySQLがこれを行うかどうかはわかりません。

0

hobodaveは右である、彼らはちょうど彼らがで作成されたセッションとして長くは続か

も考慮することがもうひとつあります:。

7.5.5を。 MySQLのクエリキャッシュ

クエリキャッシュは プリペアドステートメントには使用されません。 プリペアドステートメントを使用している場合は、 これらのステートメントはクエリキャッシュによって で満たされないと考えてください。

関連する問題