PerlでMySQLのデータベースを作ろうと思っていますが、検索に掛かった秒数を表示させる為に何かMySQLコマンドみたいなものはありますか?Windowsのプロンプト上でMySQLを実行し検索すれば、「row in set (0.02 sec)
」と表示されますのでこれを表示させたいと思っています。宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

BENCHMARK()がありますが、SQL文の結果としては常に0が返ってきてしまいます。



BENCHMARK(繰り返す回数,SQL文)

mysql> SELECT BENCHMARK(1000000,ENCODE("hello","goodbye"));
+----------------------------------------------+
| BENCHMARK(1000000,ENCODE("hello","goodbye")) |
+----------------------------------------------+
| 0 |
+----------------------------------------------+
1 row in set (4.74 sec)

単純に時間だけ欲しいならこれを使いますが、SQL文の結果も欲しい場合は、PerlのモジュールであるTime::HiResを使うほうをお勧めします。

use DBI;
use Time::HiRes qw(gettimeofday tv_interval);

$db = DBI->connect('dbi:mysql:dbname=hogedb', 'user', 'password',{RaiseError=>1});

$start = [gettimeofday];
$sth = $db->prepare('SELECT hoge, FROM huge WHERE no > 100 ');
$sth->execute;
while ($hoge = $sth->fetchrow_array){
~ 略 ~
}
$sth->finish;
$result = tv_interval($start,[gettimeofday]); #掛かった時間
    • good
    • 0
この回答へのお礼

大変参考になりました。丁寧にお答えいただきありがとうございます。早速、作ってみます。ありがとうございました。

お礼日時:2005/04/05 01:36

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング