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]