[前][次][番号順一覧][スレッド一覧]

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]