2011-12-23 4 views
0

私は遠くの(そしておそらく遅い)MySQLサーバーへの接続を(時には)使用するアプリケーション(MySQL/PHP)をビルドします。このアプリはAJAXの囁きを使ってDB接続を頻繁に開きます。私はクライアント側の最適化を行ってきましたが、永続的な接続を使用するには十分な勇気がありませんでした。AJAX呼び出しでmysql_pconnectを使用するときに留意すべき事項

アイドル状態のmysql接続がサーバーの制限を超える可能性があります。その結果、サーバーを再起動する必要があります。だから、私はmysql.connection_timeoutを15秒まで使う予定です。これは、アイドル状態の永続的な接続をその限界の後になくすでしょうか?または、サーバー・プロセスの終了時までシステム・リソースをブロックしますか?

私は囁きの中でトランザクションを使用せず、すべてのロックは接続が閉じられた後に解放されるべきです、そうですか?

私が知っておくべき他の永続的な接続の問題はありますか? (私はすでにthe documentationを読んでいます)

答えて

2

MySQLとの永続的な接続を使用することで、一般的に何も得られません。その接続プロトコルはすでに一般的にかなり高速です。あなたが失うのは、通常の非永続接続を使用する場合の「クリーン」な動作環境の保証です。

トランザクションの途中で何らかの理由でスクリプトが死んだり、サーバー側の変数を設定したままにしておくと、永続的な接続とは、接続がもう何度かスクリプト。

これが発生した場合、デッドロック状態になる可能性があります。新しいスクリプトは古い/汚れた接続を持っているということを知らず、MySQLはオリジナルの接続スクリプトがなくなって独自のクリーンアップをしていることを知ることができないので、ゴミが混じった環境になります。

言われているように、mysql.max_persistent設定であなたのために開いているPHPの接続数を制限することができます。あなたのスクリプトからどれだけ多くの接続をしようとしても、PHPはその限界を決して超えないので、MySQL独自のmax_connections設定よりも低く設定することができます。

関連する問題