※ ChatGPTを利用し、要約された質問です(原文:効率の良いDBプログラミング)
効率の良いDBプログラミング
このQ&Aのポイント
PHP+MySQLでサイトを効率的に構築するためのDB接続方法について解説します。
一つのページで複数回DBに接続する方法と、個別のパッケージで接続する方法の効率を比較します。
また、接続/切断の時間と処理速度の関係についても考察します。
PHP+MySQLでサイトを構築しているのですが、DBサーバへの接続/切断について分からない事があります。
現在作成中のサイトでは、1ページにDBデータを利用している箇所が複数あります。
DBを利用する部分は、個別にパッケージしているので、使いたい場所でincludeする様にしているのですが、個々のパッケージ内容で、DBサーバへのconnectを行っておらず、ページを読み込む時に、先頭でDBサーバへ接続する様に宣言して、ページの最後で切断しています。
<? include("config.php"); ?> ←DBへ接続
<HTML>
<HEAD></HEAD>
<BODY>
<? include("counter.php"); ?> DBカウンタ
~中略~
<? include("graph.php"); ?> グラフ表示
</BODY>
<HTML>
切断
こうする事で、DBへの接続を1回で済ましているのですが、この方法が最良なのかどうかわかりません。
やはり、個々のパッケージで接続/切断した方が効率が良いのでしょうか?
例えば、1ページの表示に時間がかかる様なページだと、接続から切断まで時間がかかると思います。それであれば、複数回接続でも1接続あたりの時間が短い方が効率が良いのではないかと思いました。
1ページを表示するのに、複数回接続するのはごく一般的な事なのでしょうか?
お礼
レスありがとうございます。 mysql_pconnectとmysql_connectの違いなんとなく理解しました。 使い方のイメージがあまりわかないのですが、単にmysql_connectをmysql_pconnectに変えれば動くのでしょうか? PHPファイルの先頭で、mysql_pconnectを使った場合、同じページをリロードすると、接続プールからコネクションを取り出すので、2回接続しなくても良いと言うイメージですが、あってますでしょうか? プロセスが消えるまでDBとの接続を維持すると理解したのですが、mi-siさんの「ページにまたがる処理や更新系の場合は同じコネクションプールを次のページに引き渡す必要がありますし、終了時にリソースの破棄の処理が必要になる場合があります」の説明が理解できませんでした。 良ければ、それらの説明(サンプルスクリプト)の掲載されているHPがありましたら教えていただけるとうれしいです。