mysql:10232
From: Daiju <Daiju <d.is.here@xxxxxxxxxx>>
Date: Tue, 28 Sep 2004 01:18:48 +0900
Subject: [mysql 10232] Re: BENCHMARK関数について
こんにちは。 another Daiju です。 On Tue, 28 Sep 2004 00:37:49 +0900 加藤 大受 <dkato@xxxxxxxxxx> wrote: > MySQLでSQL文の性能測定を行いたいと思っています。 > BENCHMARK関数を利用すれば、SELECT文などの性能測定も > 出来るように思えるのですが、実際にやってみると結果が0秒で > 戻っています。BENCHMARK関数はDML文の測定には使えないの > でしょうか。 > > こちらの環境としてはMySQL 4.1のWindows版を利用しており、 > エンジン形式はInnoDBです。 > > SELECT BENCHMARK(1, > 'SELECT COUNT(DETAIL_ID),AMOUNT FROM SALES GROUP BY SALES_ID)') > > といったような形で実行しています。 マニュアルには,以下の記述があります。 ------------------------------------------------------------- BENCHMARK(count,expr) BENCHMARK() 関数は、expr に指定された式を count に指定さ れた回数だけ繰り返し実行する。この関数は、MySQL での式の 処理速度を計測するために使用できる。結果の値としては、常 に 0 が返る。この関数を mysql クライアントで使用すること によって、クエリの実行時間をレポートすることができる。 mysql> SELECT BENCHMARK(1000000,ENCODE("hello","goodbye")); +----------------------------------------------+ | BENCHMARK(1000000,ENCODE("hello","goodbye")) | +----------------------------------------------+ | 0 | +----------------------------------------------+ 1 row in set (4.74 sec) レポートされる時間は、サーバ側の CPU 時間ではなく、クライ アント側の経過時間である。BENCHMARK() を数回実行し、結果を分 析することによって、サーバマシンの負荷がどれくらいか調べるこ とができる。 ------------------------------------------------------------- ものは試しと,PentiumM 1.0GHz(L2 1MB) で上のコマンドをサー バー・クライアントともにローカルの環境で実行すると,平均 0.83 sec となりました。 PenIII 500MHz(L2 512KB)だと,2.46sec。 -- Daiju <d.is.here@xxxxxxxxxx> http://opencage.blogspot.com/
10231 2004-09-28 00:37 [加藤 大受 <dkato@xxx] BENCHMARK関数について -> 10232 2004-09-28 01:18 ┗[Daiju <d.is.here@xxx] 10233 2004-09-28 01:38 ┗[加藤 大受 <dkato@xxx]