Webアプリケーションにmod_perlを使用しています。現在、ネットワーク全体でmysqlデータベースを使用する予定です。display_customer_transaction.cgiへのすべてのCGIリクエストで、私のスクリプトは
- ネットワーク全体でデータベース接続を開きます
- SQLステートメントを使用してデータベースでクエリを実行します
- データベースから取得したデータを分析する
- データをHTML形式で印刷します
- データベース接続を閉じます
プロファイリングを行った後、ステップ(1)がボトルネックであることがわかりました。したがって、CGIリクエストごとにデータベース接続を開いたり閉じたりすることは避けたいと思います。私の願いは、最初のCGI要求がデータベース接続を開いた場合、(別のクライアントからの)2番目の着信CGI要求が最初のデータベース接続を再利用する可能性があることです。
「DBIX永続データベース接続」をGoogleで試しましたが、関連する結果がほとんど見つかりませんでした。(編集:これは、DBIC、またはDBIXではなくDBIx :: Classと呼ばれるためです。)
さらに、 Apache :: DBIを使用して関連情報を見つけます(ただし、私の意図はApache :: DBIではなくDBIXにあります)。私を混乱させたいくつかの情報があります:
Apache :: DBIモジュールにはまだ制限があります。それは、プロセスごとにデータベース接続を永続的に保ちます。
その間ずっと、ApacheがCGIリクエストをどのように処理するかについての私の概念は
- Apacheは常に新しいプロセスを生成して、着信する新しいCGIリクエストを処理します。PerlインタープリターがPerlスクリプトの実行を終了するたびに、プロセスは停止します。
したがって、Apache :: DBIモジュールがデータベース接続をプロセスごとに永続的に維持することしかできない場合、2番目のCGI要求は、最初のCGI要求によって開かれた接続をどのように再利用できますか?
しかし、私の元の質問に戻ってください。mod_perlでDBIX永続データベース接続を使用するにはどうすればよいですか?