PHP スクリプトの実行後、MySQL は切断されますか?
PHP中文网
PHP中文网 2017-05-16 13:06:27
0
5
898

スクリプト内に mysql に接続する SQL ステートメントがあります。実行されると、mysql サーバーは接続を処理するために新しいスレッド (またはプロセス?) を開きます。スクリプトが終了すると、PHP (または Apache?) から切断されます。 )。 mysql の長い接続とは何ですか?突然、何も理解できなくなったように感じました。 。 。

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(5)
Ty80

フレームワークを手動で閉じたい場合は、クラスのデストラクターに終了コードを記述します。通常はシングルトン モードで mysql に接続されますので、心配する必要はありません。

いいねを押す +0
漂亮男人

1.mysqlは、対応するトランザクションを処理するプロセスを開始します

2. Apache httpd プロセスから切断します。Apache はリクエストを受け取り、MOD にリクエストを転送します。PHP のプロセス全体は Apache モジュール モードで実行されます。 httpd プロセス 中

3. 短いリンクの欠点: 接続を作成すると、プログラムが実行されると、mysql へのリンクが自動的に切断されます。では、PHP が実行される回数は、このような作成とリリースの処理が何度も行われることになります。接続の作成と解放を頻繁に行うと、CPU リソースが消費されます。

リーリー

いいねを押す +0
大家讲道理

PHP だけから長時間の接続を維持することは不可能ですが、それを実現する方法はあります。

PHP を Apache+php_module モードで実行する場合、mysql_pconnect を介して永続リンクを確立できますが、このリンクは Apache によって維持されます (公式ドキュメントで説明されているように、mysql_pconnect は nginx+fpm では長い接続を維持できません)

nginx+fpm fpm は通常、静的に設定されます。PDO 拡張機能を使用すると、データベースに接続するときに長い接続を設定でき、各 fpm は永続的なリンクを維持します。ただし、システムに基づいて FPM プロセスの数とデータベース接続の最大数を評価する必要があります。PHP リクエストが少なすぎると、多数のアイドル接続がリソースを無駄にします (mysql wait_time を適切に設定する必要があります)。 ) PHP リクエストが多すぎると、FPM プロセスがデータベースの最大接続数を超えてしまいます。 。

いいねを押す +0
Peter_Zhu

通常、php は SQL を実行するたびに短いリンクを作成します。実行が完了すると、php はリンクを切断します (おそらくタイムアウト後に MySQL がリンクを切断します)。

現在、この IO オーバーヘッドを削減する一般的な方法は、データベース接続プールを確立し、指定された数の接続を維持し、使用時に関連リソースを直接取得することです。

いいねを押す +0
大家讲道理

オリジナルのphpを使用している場合は、手動で閉じる必要があります。 フレームワークは通常パッケージ化されており、直接使用できます

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート