実際には、接続プールという用語を使用します および持続的接続 mysqliの場合も同じことを参照してください PHPで。
持続的接続 この場合、PHPスクリプトから開かれたMySQL接続を指し、スクリプトの実行が終了した後も開いたままになり、後の実行で再び使用されます。
接続プール PHPによって維持される永続的な接続のプールがあることを意味します。このプールからの1つのアイドル接続は、MySQLに接続するPHPスクリプトに与えられ、スクリプトが終了するとプールに戻されます。
なぜMySQL接続のプールが必要なのか、すべてのスクリプトに1つの永続的な接続だけを使用しないのか疑問に思われるかもしれません。
これには2つの理由があります:
- PHPは、
host/port/username/password
に基づいてMySQL接続のプールを作成します 使用済み。 1つのスクリプトがhost/port/username/password
を使用してMySQLに接続する場合 組み合わせて、PHPは同じ値を持つアイドル状態の持続的接続を検索します。見つからない場合は、このhost/port/username/password
を使用して新しい持続的接続が作成されます。 組み合わせ。したがって、少なくとも、異なるhost/port/username/password
と同じ数の異なる持続的接続が必要です。 すべてのスクリプトで使用される値。 - 1つのMySQL接続で2つのSQLコマンドを同時に実行することはできません。これは、2つのPHPスクリプトが同時に実行されている場合に発生する可能性があります。 2つのスクリプトが同時にMySQLと通信する場合、2つの永続的なMySQL接続が作成されます。プール内の永続的な接続の数は、最後に実行された並列PHPスクリプトの最大数、または
php.ini
で設定された上限と同じです。 。
重要なお知らせ:
MySQL接続プール(およびその他の接続プール)は、PHPがWebサーバープラグインとして実行されている場合にのみ存在できます 。 fast-cgiモードで動作している場合、またはスクリプトの実行後にPHP実行可能ファイルが終了した場合、プールは動作しません。
編集:Webサーバーが複数のリクエストに対して1つのPHP fast-cgiプロセスを再利用するように構成されている場合、MySQL接続プーリングをPHPのfast-cgiモードで使用できます。 PHP fast-cgiプロセスが1つのリクエストを処理した後に終了するように構成されている場合、そのMySQL接続はすべて閉じられます。