patch
patch****@x*****
2005年 5月 12日 (木) 15:49:38 JST
丸山@KSM様 はまだ様 田村様 皆様お世話になっております。 伝授頂きました設定により無事レスポンスが戻りました! しかも以前より良くなってます! ■my.cnf設定 ○変更前 key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K ○変更後 key_buffer = 128M max_allowed_packet = 1M table_cache = 256 sort_buffer_size = 1M record_buffer = 1M long_query_time = 1 ■インデックス追加 ALTER TABLE products ADD INDEX idx_products_status (products_status); ALTER TABLE specials ADD INDEX idx_products_id (products_id); 本当に助かりました! それでは今後ともよろしくお願い致します。 吉田 > こんにちは、田村です。 > > 吉田さん: > > 商品をある程度登録して行くと > > TOPページが反応するまでに20〜30秒かかるようになってしまいました。 > > ちなみに管理画面の[基本設定]→[最大値]→[新着商品表示数]を0にすると > > 1秒程度で反応し、一瞬で表示されます。 > > トップページの表示が20〜30秒というのは、 > そんなことがあるかなあ? と気になったんですが、 > osCommerceに関してはSQLの確認をしてみるといいですね。 > > 新着商品の表示には次のようなSQLが利用されています。 > ------------------------------------------------------------ > select p.products_id, p.products_image, p.products_tax_class_id, > if(s.status, s.specials_new_products_price, p.products_price) as products_price > from products p left join specials s on p.products_id = s.products_id > where products_status = '1' order by p.products_date_added desc limit 9 > ------------------------------------------------------------ > > ここで products_status にはインデックスが用意されていませんので、 > 次のようなSQLでインデックスを追加して検証すればいいと思います。 > ------------------------------------------------------------ > ALTER TABLE products ADD INDEX idx_products_status (products_status); > ------------------------------------------------------------ > > また、特価商品が非常に多いなら次のインデックス追加も有効かもしれません。 > ------------------------------------------------------------ > ALTER TABLE specials ADD INDEX idx_products_id (products_id); > ------------------------------------------------------------ > > # インデックスは作ればいいというわけでもなくて、 > # サーバの状態やレコード数などの状況によります。 > > ひょっとしたら、サーバのその他のアプリケーションの > メモリ利用状況などの影響を受けていることも考えられます。 > > -- > 田村敏彦 / 株式会社ビットスコープ > E-mail:tamur****@bitsc***** > http://www.bitscope.co.jp/ >