2009-09-09 14 views

答えて

7

接続を1回だけ開きます。接続の開閉は時間がかかります。あなたがすでに言ったように、PHP closes open connections at the end of the runtime automatically

接続が必要なときはいつでもmysql_connectを呼び出し、最後にPHPを閉じるようにしてください。 mysql_connectは既に存在する接続をチェックするので、同じパラメータを使用してmysql_connectを呼び出すと毎回新しい接続が開かれることを心配する必要はありません。また、1つ以上のスクリプトの実行に使用できるpersistent connectionsを使用することもできます。

0

永続接続または接続プールを使用する方がよい場合があります。

0

開いている接続を閉じると、通常通りに整理することをお勧めします。

各クエリーに対して1つずつ開くかどうかは、アプリケーションによって異なります。それがデータベースと非常にまれにしかやり取りされない場合は、この方法で行うのが最善でしょう。または、すべてのユーザーが使用できるようにプールを開いたままにし、他のすべてのものが現在使用されている場合にのみ新しいプールを開くことができます。

1

私は、接続を開いたままにしておく方が良いです。しかし、これはアプリケーションの動作に依存します。膨大な数の計算や接続に時間がかかる外部サービスを接続している場合は、接続を閉じて時間のかかる部分を完了した後にもう一度開いてください。あなたはSQL接続の数の限界を打つことができる訪問者の大きな数を持っていない場合は、接続を常に開いたままにしておきます。再度開くには時間がかかります。

0

スクリプトの初期化中にデータベースに一度だけ接続します。スクリプトが実行されている間は接続を開いたままにして、それを介してさらにクエリを送信してください。

上記は、複数のSQLクエリを実行する短時間実行のPHPスクリプト(おそらくウェブサーバー上)がある典型的な使用シナリオです。スクリプトが数時間以上実行されていない限り、クエリ間の接続を閉じる心配はありません。

SQLサーバに接続するたびに、PHPスクリプトとサーバの両方が(比較的)複雑なネゴシエーションを実行する必要があります。ネットワーク経由で接続を確立し、両者がMySQLを話していることを確認し、スクリプトには接続などの権限があります。 db接続を維持しておくと、はるかに高速で効率的です。

5

本当に問題ではありません。あなたのPHPスクリプトがスクリプトの終わりにあなたのための接続を閉じようとしているなら、本当にあなた自身がそれをやることはあまりありません。

すべてのクエリを実行した後でスクリプトに余分なコードを挿入して接続を閉じる必要がある唯一の理由は、小さなメモリを解放したい場合です。 GD2のようなライブラリを使って、あなたのスクリプトはすでにメモリが空いています。

各クエリの後に接続を閉じ、別のクエリを実行するために別のクエリを開くと、メモリが空いてしまい、膨大な時間が掛かります。すべてで、本当に気にしないでください!

2

スクリプトが接続をランダムに使用する場合は、接続をオープンにします。 特定の時間間隔で接続を使用しているジョブのグループがある場合、各グループジョブの後に接続を閉じることができます。