現在、以下のようなperlのスクリプトを作っているのですが、mysqlへの接続,切断は以下の場合、どちらにした方がいいのでしょうか?
(1)の場合
use DBI;
$dsn="DBI:mysql:database=dbname:host=localhost";
$dbh=DBI->connect($dsn,'user','pass');
$sth = $dbh->prepare("SELECT no,title,name,date,host From `table1` where no='1'");
$sth->execute;
$sth->fetchrow_array;
$sth->finish;
$sth2 = $dbh->prepare("SELECT no,title,name,date,host From `table2` where no='1'");
$sth2->execute;
$sth2->fetchrow_array;
$sth2->finish;
$dbh->disconnect;
(2)の場合
use DBI;
$dsn="DBI:mysql:database=dbname:host=localhost";
$dbh=DBI->connect($dsn,'user','pass');
$sth = $dbh->prepare("SELECT no,title,name,date,host From `table1` where no='1'");
$sth->execute;
$sth->fetchrow_array;
$sth->finish;
$dbh->disconnect;
$dsn="DBI:mysql:database=dbname:host=localhost";
$dbh=DBI->connect($dsn,'user','pass');
$sth2 = $dbh->prepare("SELECT no,title,name,date,host From `table2` where no='1'");
$sth2->execute;
$sth2->fetchrow_array;
$sth2->finish;
$dbh->disconnect;
(1)の場合と(2)の場合の違いは、(1)の場合、最初にデータベースに接続して、一番最後に切断する事で、(2)の場合、毎回データベースへの接続と切断を行う事が違います。
(2)の場合、毎回接続と切断を行うので、2回ほどではあまり変わらないかもしれないのですが、もし10回とか接続と切断を行うとかなり負荷が高くなるような気がするのですが、他のHPなどを拝見すると接続をしたら切断を行うように癖をつけるようにした方がいいと書かれていたりします。
どちらの方が正しいやり方というか、負荷がすくなく使えるのでしょうか?
No.1ベストアンサー
- 回答日時:
参考URLをご覧になってみて下さい。
再接続しなおすことのコストを考えると、最初に接続・最後に切断が良いようです。
参考URL:http://homepage3.nifty.com/hippo2000/perltips/db …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fetchrow_arrayとfetchrow_hash...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 定義されたプロージ...
-
ユーザー定義関数に#NAME?が返...
-
例外処理のフローチャートの記...
-
Cからシェルを起動し返り値をハ...
-
「デバイスは PRN を初期化でき...
-
Excel VBAで、ユーザーフォーム...
-
VBSがコンパイルエラーになりま...
-
グラフのX,Y座標を取得したい
-
モジュールとサブルーチン
-
モジュールとクラスの違いって...
-
VBAで別モジュールへの変数の受...
-
ハマったので助けて~。Apache...
-
Excelシート内セル記述の違いに...
-
偶数/奇数の判定
-
Excel VBA 『Call』で呼び出す...
-
Access VBA標準モジュールにつ...
-
ExcelVBA:パブリック オブジェ...
-
WebClientの文字列送信にてエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fetchrow_arrayとfetchrow_hash...
-
Oracleのデータベースに接続で...
-
perlでdb(mysql)に接続
-
perlのdbi-connect処理のエラー
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
"JScript"が見つかりません!
-
VBSがコンパイルエラーになりま...
-
VBでグローバル変数を宣言するには
-
エクセルVBAでシートモジュール...
-
「デバイスは PRN を初期化でき...
-
VBA This Workbookモジュール...
-
モジュールの最大数はいくつな...
-
LCD ディスプレイを Raspberry ...
-
Excel VBAで、ユーザーフォーム...
-
VBAで旧字体を異字体に一括で変...
-
VBAでoutlook365が起動しません。
-
Access VBA標準モジュールにつ...
おすすめ情報