3

アプリケーションを php から fastcgi (c) に移植しています。私のホストはApacheを実行しています。

fastcgi アプリはループで実行されるため、mysql 接続を開き、すべての着信要求に対して開いたままにすることができました。これはお勧めですか?

接続はリクエストよりもはるかに高価であり、永続的である必要があるという同数の意見を読んだことがあると思いますが、一方で、開いている接続はリソースを浪費し、毎回閉じる必要があると主張する人もいます。

私の文脈では、これらのうちどれが正しいですか?

4

3 に答える 3

1

そんな当たり前の答えは言いたくないのですが…両方の方法を試して比較したことはありますか?connect() を pconnect() に変更して、両方の方法で試すのはとても簡単です。特に負荷がかかった状態でプロファイリングを行い、ハードウェアとソフトウェアの組み合わせで何が最適かを確認してください。

トラフィックの多いサイトでは、永続的な接続が機能するのに十分な数の接続を DB に受け入れさせることができない場合がありますが、一般的には、永続的な接続の方が効率的である傾向があります。

于 2008-11-11T12:10:06.923 に答える
0

少なくとも 10 ~ 20 人のユーザーがサイトを常に使用している場合、永続的な接続が最適に機能します。それ以下は過剰です

于 2008-11-11T16:27:50.010 に答える
0

それはあなたのセットアップに大きく依存します。MySql は、接続の確立が非常に高速であることで有名です。そのための設計と言えます。データベースが Web サーバーと同じマシン上にある場合、非常に高速です。これを、接続を維持するという追加の複雑さと比較検討する必要があります。各スクリプトが新しい接続を作成する場合、不正な動作をするスクリプトは他のスクリプトを停止できません。考慮すべき接続ごとの状態などの問題もあります。したがって、経験則として、接続がパフォーマンスのボトルネックであると特定しない限り、接続を最適化しようとしないでください。

于 2008-11-11T17:22:23.550 に答える