MySQL データベース php
マニュアルには、主に 2 つの違いがあると書かれています $new_link に true 値を指定しない場合、動作は同じです。同じパラメータを使用した 2 回目の呼び出しでは、新しい接続は確立されませんが、すでに開かれている接続識別子が返されます
それは、途中で別のリクエストや mysql_close を行わなくても、mysql_connect は mysql_pconnect と同じになるという意味ですか?
データベース接続は 2 つの段階に分かれています
第 1 段階: データベースサーバーとの物理接続を確立します
第 2 段階: データベースサーバーにログインし、データベースとのビジネスリンクを確立します
mysql_connect の場合、mysql_close が切断されますこれら 2 つの接続 (完了後に PHP プログラム mysql_close が自動的に呼び出されます)
mysql_pconnect の場合、mysql_close は機能しません。 PHP プログラムが終了すると、データベースへのビジネス リンクは自動的に切断されます。そして、物理接続を保持して再利用の準備をします
つまり、 mysql_connect が再度リクエストを発行しないか、途中で mysql_close を発行しない場合は、 mysql_ pconnect と同じになるという意味ですか。
データベース接続は 2 つの段階に分かれています
第 1 段階: データベースサーバーとの物理接続を確立します
第 2 段階: データベースサーバーにログインし、データベースとのビジネスリンクを確立します
mysql_connect の場合、mysql_close が切断されますこれら 2 つの接続 (完了後に PHP プログラム mysql_close が自動的に呼び出されます)
mysql_pconnect の場合、mysql_close は機能しません。 PHP プログラムが終了すると、データベースへのビジネス リンクは自動的に切断されます。物理的な接続を維持し、再利用に備えます
司会者 ご回答ありがとうございます。 mysql_pconnect の再利用の意味がまだよくわかりません。スクリプト間で再利用できるかどうか聞いてもいいですか?たとえば、スクリプト A は mysql_pconnect を使用し、スクリプト A が実行される前にスクリプト B が開かれます。これにより、スクリプト B はデータベースに再度接続することなく、スクリプト A の接続を使用できるようになります。
mysql_pconnect の利点は何ですか? 私はこれを使用しません。
あまり効果があるかは分かりません。
データベース接続は常に必要です
長い接続は通常、Web サービスとデータベース サービスが同じマシン上にない状況で使用されます
説明したように、「スクリプト A が実行される前にスクリプト B が開かれる」ため、接続は再利用できません。再利用するには、接続がアイドル状態であることを意味します
データベース接続は常に必要です
長い接続は通常、Web サービスとデータベース サービスが同じマシン上にない状況で使用されます
あなたが説明した状況のように、「スクリプト A が実行される前にスクリプト B が開かれる」 , 接続がアイドル状態であることが再利用の前提条件であるため、接続を再利用することはできません
モデレーターありがとう、おそらく理解しました。
この文の理由をもう一度考える必要があります
一般に、Web サービスとデータベース サービスが同じマシン上にない場合、長い接続が使用されます
前に述べたように、同じマシン上にいない場合はネットワーク経由です
ネットワークは単独で使用するものではないため、実際の接続は比較的遅くなります。したがって、物理的な接続を維持する方がコスト効率が高くなります (接続後は放さないでください)
そして、同じコンピューター上にある場合は、ネットワークを経由する必要がないため、高速になります。逆に、長い接続はアイドル状態にする時間がないため、大量のリソースを占有し、データベースが接続できなくなります