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

mysql:14976

From: Mikiya Okuno <Mikiya Okuno <Mikiya.Okuno@xxxxxxxxxx>>
Date: Fri, 17 Jul 2009 23:00:22 +0900
Subject: [mysql 14976] Re: MySQL Clusterのチューニング方法

羽田さん、こんばんは。

何点かポイントだけ述べさせて頂きます。

> SELECT * FROM [table_name] LIMIT 3000,30;

このようなクエリを実行すると、SQLノードは3000行データノードからフェッチして、
そのまま捨ててしまうことになりますので効率がよくありません。LIMIT句では
オフセットを極力利用しないようにしましょう。その代わりWHERE句で条件の絞り込みを
するようにしましょう。

MySQL Clusterでは、ORDER BY句を指定しない限り、行がソートされることはありません。
上記のクエリでは、行の順序とは無関係の結果が返ってくるかも知れません。

また、ネットワークの帯域がボトルネックになるのを防ぐため、* もあまり
利用するべきではありません。カラムを絞り込むことで性能が改善する場合があります。
MySQL Clusterではネットワークがボトルネックになりやすいので注意しましょう。

テーブルがインメモリ型ではなくディスク型の場合、キャッシュサイズが小さいと
時間がかかる場合があります。

JOINは使用していないですよね?

EXPLAINの「type」はALLでしょうか?

> そもそも、この14秒というのがそこそこの処理速度なのかも
> よく分かっていない状況なのです。

非常に遅いと思います。

--
Mikiya Okuno, MySQL Support Engineer
Sun Microsystems KK, Tokyo, Japan
http://www-jp.mysql.com/

On 17/07/2009, at 10:13 PM, Kota Hada wrote:

> はじめまして。羽田と申します。
>
> MLへの投稿が初めてなので、失礼な書き方をしてしまうかも知れませんが、
> 皆さまのお知恵を拝借できればと思います。
>
> MySQL Cluster7.0をインストールしたのですが、
> 約4万レコードのテーブルに対し、SELECT * FROM [table_name] LIMIT 3000,30;
> のように、selectを実行した場合に結果の表示に15秒程度かかってしまいます。
>
> このselectの処理がより早くなるためのチューニング方法を検討しているのですが、
> なかなか良い解決策が見当たりません。
>
> 私の方では、クエリーキャッシュの有効、スレッドキャッシュの変更を行いましたが、
> 当然のことながら、初回のクエリーは遅い結果が出てしまいます。
>
> そもそも、この14秒というのがそこそこの処理速度なのかも
> よく分かっていない状況なのです。
>
> 何か良いチューニング方法等ご存知でしたら、
> ご教授いただければと思います。
>
> 宜しくお願い致します。
>


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

     14975 2009-07-17 22:13 [Kota Hada <kthd.wing] MySQL Clusterのチューニング方法         
->   14976 2009-07-17 23:00 ┗[Mikiya Okuno <Mikiya]                                       
     14977 2009-07-18 01:16  ┗[Kota Hada <kthd.wing]                                     
     14978 2009-07-18 11:14   ┗[Mikiya Okuno <Mikiya]                                   
     14984 2009-07-18 12:42    ┗[Kota Hada <kthd.wing]