スクリプト内に mysql に接続する SQL ステートメントがあります。実行されると、mysql サーバーは接続を処理するために新しいスレッド (またはプロセス?) を開きます。スクリプトが終了すると、PHP (または Apache?) から切断されます。 )。 mysql の長い接続とは何ですか?突然、何も理解できなくなったように感じました。 。 。
认证高级PHP讲师
フレームワークを手動で閉じたい場合は、クラスのデストラクターに終了コードを記述します。通常はシングルトン モードで mysql に接続されますので、心配する必要はありません。
1.mysqlは、対応するトランザクションを処理するプロセスを開始します
2. Apache httpd プロセスから切断します。Apache はリクエストを受け取り、MOD にリクエストを転送します。PHP のプロセス全体は Apache モジュール モードで実行されます。 httpd プロセス 中
リーリー
PHP だけから長時間の接続を維持することは不可能ですが、それを実現する方法はあります。
PHP を Apache+php_module モードで実行する場合、mysql_pconnect を介して永続リンクを確立できますが、このリンクは Apache によって維持されます (公式ドキュメントで説明されているように、mysql_pconnect は nginx+fpm では長い接続を維持できません)
nginx+fpm fpm は通常、静的に設定されます。PDO 拡張機能を使用すると、データベースに接続するときに長い接続を設定でき、各 fpm は永続的なリンクを維持します。ただし、システムに基づいて FPM プロセスの数とデータベース接続の最大数を評価する必要があります。PHP リクエストが少なすぎると、多数のアイドル接続がリソースを無駄にします (mysql wait_time を適切に設定する必要があります)。 ) PHP リクエストが多すぎると、FPM プロセスがデータベースの最大接続数を超えてしまいます。 。
通常、php は SQL を実行するたびに短いリンクを作成します。実行が完了すると、php はリンクを切断します (おそらくタイムアウト後に MySQL がリンクを切断します)。
オリジナルのphpを使用している場合は、手動で閉じる必要があります。 フレームワークは通常パッケージ化されており、直接使用できます
フレームワークを手動で閉じたい場合は、クラスのデストラクターに終了コードを記述します。通常はシングルトン モードで mysql に接続されますので、心配する必要はありません。
1.mysqlは、対応するトランザクションを処理するプロセスを開始します
2. Apache httpd プロセスから切断します。Apache はリクエストを受け取り、MOD にリクエストを転送します。PHP のプロセス全体は Apache モジュール モードで実行されます。 httpd プロセス 中
3. 短いリンクの欠点: 接続を作成すると、プログラムが実行されると、mysql へのリンクが自動的に切断されます。では、PHP が実行される回数は、このような作成とリリースの処理が何度も行われることになります。接続の作成と解放を頻繁に行うと、CPU リソースが消費されます。リーリー
PHP だけから長時間の接続を維持することは不可能ですが、それを実現する方法はあります。
PHP を Apache+php_module モードで実行する場合、mysql_pconnect を介して永続リンクを確立できますが、このリンクは Apache によって維持されます (公式ドキュメントで説明されているように、mysql_pconnect は nginx+fpm では長い接続を維持できません)
nginx+fpm fpm は通常、静的に設定されます。PDO 拡張機能を使用すると、データベースに接続するときに長い接続を設定でき、各 fpm は永続的なリンクを維持します。ただし、システムに基づいて FPM プロセスの数とデータベース接続の最大数を評価する必要があります。PHP リクエストが少なすぎると、多数のアイドル接続がリソースを無駄にします (mysql wait_time を適切に設定する必要があります)。 ) PHP リクエストが多すぎると、FPM プロセスがデータベースの最大接続数を超えてしまいます。 。
通常、php は SQL を実行するたびに短いリンクを作成します。実行が完了すると、php はリンクを切断します (おそらくタイムアウト後に MySQL がリンクを切断します)。
現在、この IO オーバーヘッドを削減する一般的な方法は、データベース接続プールを確立し、指定された数の接続を維持し、使用時に関連リソースを直接取得することです。オリジナルのphpを使用している場合は、手動で閉じる必要があります。 フレームワークは通常パッケージ化されており、直接使用できます