hamada
bungu****@leo*****
2006年 1月 17日 (火) 08:41:40 JST
こんにちわ。 On Mon, 16 Jan 2006 11:28:07 +0900 しょうじ <kuriy****@takum*****> wrote: > どうして遅いんだろう・・・ とりあえず、my.cnfの[mysqld]下に set-variable = long_query_time=1 set-variable = log-slow-queries=slow.log とか追記してプロセスを再起動し、スロークエリを抽出する事から始めるのが常 道かと思います。 まずshow variablesで設定値を確認し、show statusで動作状況を確認し、スロー クエリを特定してexplainで問題のクエリの動作状況を調べ、なにが足りないの かを調べて足りないものを足す、というのが基本パターン。 そもそも、現状のサーバスペック、特に実メモリの量と、mysqldプロセスに設定 されてるkey_buffer_size、およびtable_cacheの値は幾らなんでしょう? MySQL4.xなら(他の方からもお話し出てますが)クエリキャッシュを有効にする 手もあります。この辺は過去ログを見てもらえば良いと思うので、繰り返しませ ん。チューニングのドロ沼に踏み込むのは、もう沢山(^_^;) > 以前、トップページに複数のランキングを表示していた時に、トップページの表示が > 遅かったことがありました。 上記記述だけでは『遅い』原因が本当にDBなのか、それともそれ以外に原因があ るのかを判別出来ませんが、DBが『遅い』原因だとすれば A. クエリそのものが重い(=スロークエリ) B. クエリの発行回数が多い のどちらかが原因なことが多いんじゃないでしょか? Aが原因だとすれば A1 プロセス変数(my.cnf)のチューニング A2 インデックス等データベースのチューニング A3 データベースサーバの強化 等が主な対策かと思われますが、まずは現状、つまり「どこの何がどうボトルネッ クになっているのか」を把握するのが先決かと。 はまだ