PHP コードの一部を最適化しようとしています。PHP スクリプトのほとんどの時間が、スクリプトの開始時に mysql データベースへの接続中に費やされていることがわかりました。
最初に 1 回だけデータベースに接続し、スクリプトの最後でデータベース接続を閉じます。
ただし、このページを要求するユーザーごとに、新しい接続を確立する必要があります。
データベースへの参照を保持し、すべてのリクエストで共有する方法はありますか?
PHP コードの一部を最適化しようとしています。PHP スクリプトのほとんどの時間が、スクリプトの開始時に mysql データベースへの接続中に費やされていることがわかりました。
最初に 1 回だけデータベースに接続し、スクリプトの最後でデータベース接続を閉じます。
ただし、このページを要求するユーザーごとに、新しい接続を確立する必要があります。
データベースへの参照を保持し、すべてのリクエストで共有する方法はありますか?
はい、あなたはそれを達成することができます。
MySQLi拡張機能を使用している場合(末尾にiが付いていない古い拡張機能は古くなっています!p:
)、インスタンスの作成時にホスト名にプレフィックスとして
渡すことで持続的接続を作成できます。mysqli::__construct
を参照してください。
古いMySQL拡張機能を実際に使用している場合は、持続的接続用のmysql_pconnectがあります。
または、PDOを使用している場合は、を使用setAttribute()
してを使用できますPDO::ATTR_PERSISTENT
。
での持続的接続の使用に関するドキュメントPDO
。
接続を永続化できます (PDO の場合はPDO::ATTR_PERSISTENT => trueを使用します) が、スクリプトが mysql への接続に多くの時間を費やしている理由を見つけて、そこを改善することをお勧めします。
このことを考慮:
skip-auto-rehash
からのコメントmy.cnf
)