2009年7月18日

[mysql 14977] Re: MySQL Clusterのチューニング方法

奥野さん

ご返信ありがとうございます。

以下、インラインにて失礼します。

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

> このようなクエリを実行すると、SQLノードは3000行データノードからフェッチして、
> そのまま捨ててしまうことになりますので効率がよくありません。LIMIT句では
> オフセットを極力利用しないようにしましょう。その代わりWHERE句で条件の絞り込みを
> するようにしましょう。
>
> MySQL Clusterでは、ORDER BY句を指定しない限り、行がソートされることはありません。
> 上記のクエリでは、行の順序とは無関係の結果が返ってくるかも知れません。
>

テストでこのようなクエリを実行しておりました。
実際には、WHERE句を使い条件をしぼるようにしてます。
ただ、それでも5〜6秒もかかってしまっています。

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

一応、1GbpsのNICでつながっているのですが、
このれでもボトルネックの可能性はありますでしょうか?

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

なるほど。
ただ、特にディスク型を設定した覚えがありません。
これが原因なのか??な気がしています。

キャッシュサイズについては、少し調べて試しに設定してみることにします。

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

はい。使用していません。

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

はい。ALLでした。

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

引き続き、ご教授いただければ幸いです。
よろしくお願いいたします。


投稿者 xml-rpc : 2009年7月18日 01:16
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86762
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。