- ベストアンサー
検索の秒数表示について
PerlでMySQLのデータベースを作ろうと思っていますが、検索に掛かった秒数を表示させる為に何かMySQLコマンドみたいなものはありますか?Windowsのプロンプト上でMySQLを実行し検索すれば、「row in set (0.02 sec) 」と表示されますのでこれを表示させたいと思っています。宜しくお願いします。
- みんなの回答 (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]); #掛かった時間
お礼
大変参考になりました。丁寧にお答えいただきありがとうございます。早速、作ってみます。ありがとうございました。