PHP には MYSQL に接続するときに 2 つの関数があります
CONNECT と PCONNECT
これら 2 つの関数の違いは何ですか?
一般的な標準的な答えは次のとおりです:
PCONNECT は永続的な接続であり、PHP は既存のデータベース接続を再利用します
しかし、尋ね続けると、それを言える人ははるかに少なくなります
よくある質問は次のとおりです:
いつ使用するかCONNECT と PCONNECT をいつ使用するか?
mysql_close をいつ使用するか?
データベースに大量のスリーププロセスがあるのはなぜですか?
PCONNECT を使用するときにリソース ID が毎回異なるのはなぜですか?
まず最も簡単な説明に戻りましょう。pconnect は既存のデータベース接続があるかどうかを確認します。
存在する場合は古い接続を使用し、存在しない場合は新しい接続を開きます
ただし、ここで言及されているチェック接続は、この APACHE トリップによって開かれたデータベース接続を指します
この WEB ではなく、SERVER によって開かれたデータベース接続を指します。
WEB サーバー上で数百の APAHE トリップが存在する可能性があります (2.0 のデフォルトは最大 150 です)
つまり、最大の場合、PCONNECT によって引き起こされるデータベース接続が数百ある可能性があります
(実際にははるかに少なくなります)これより)
そのため、PCONNECT を使用すると、異なるリソース ID が表示されます
異なる旅程で実行される可能性があるためです
そして、PCONNECT はクエリが完了しても閉じず、一定時間待機します
この時間は次のように決定できます。 MYSQL
と mysql_close の wait_timeout 設定は、pconnect によって開かれた接続を閉じることができません。connect によって開かれたデータベース接続のみを閉じることができます。もちろん、CLOSEがない場合は、TIMEOUT時間が経過した後にDBによってDROPされます。
PCONNECT は注意して使用する必要があります。不適切に記述されたコードには大量の DATABASE CONNECTION が残ります。最大値は次のように計算できます
サーバーごとのAPACHEトリップ数 * すべてのWEB SERVEWRの数
もちろん、注意する必要はありませんが、各接続はDBのCPU TIMEとMEMORYを消費します
書き込み時にはWEB CODE は、どんな言語を使っても、書き始める前に答えなければならない点が 2 つあります
まず、DATABASE からどのようなデータを取得するか
2 番目に、USER 側にどのようなデータを送信するか
(実際にはこれは WEB にだけ使用されるわけではありません)
DATABASE 接続は非常に遅いです。一度に必要なデータを取得できた場合は、2 回実行しないでください。