[Tep-j-general] Re: データベースの最適化?

Zurück zum Archiv-Index

TAMURA Toshihiko tamur****@bitsc*****
2003年 1月 29日 (水) 22:28:32 JST


こんばんは、田村です。

永田さん:
>と言いますのも、specialsテーブルの中のproducts_idにはインデックスが無いので
>すが、これにインデックスを作成してあげると、ページの表示速度(?)が上がるこ
>とに気が付きました。

最初読んだときには、
specials テーブルの products_id にインデックスをつけて速くなる? 
とピンとこなかったんですが、
ここで実際に実行されるSQLは、下のように結構複雑なんですね。

select p.products_id, pd.products_name, p.products_price, 
p.products_tax_class_id, p.products_image, s.specials_new_products_price
from products p, products_description pd, specials s, categories c,
products_to_categories p2c 
where p.products_status = '1' 
and p.products_id = s.products_id 
and pd.products_id = s.products_id 
and pd.language_id = '4' 
and s.status = '1' 
and p.products_id = p2c.products_id 
and p2c.categories_id = c.categories_id 
and c.status = '1' 
order by s.specials_date_added DESC limit 10


伊豆さん:
> 通常インデックスを付ける場合、気にしなくてはいけないのは、insertやupdateが多い
> テーブルに対しては慎重にならなくてはいけないと言うことです。
> selectが早くなっても、全体では遅くなることが多いので。
> osCommereceの場合、orders系のテーブルに対しては慎重にいかなくてはだめなような
> 気がします。

そうですね。
MySQLは、レコード数が少なければ、
案外インデックスが無い方が速い場合があるなどとも言われてますが、
osCommerceはかなり複雑なSQLが多いので、
実験してみないと分からないような気がしてきました。
こんな例を見ると、まだ改善の余地があるのかもしれませんね。

--
田村敏彦 / 株式会社ビットスコープ
E-mail:tamur****@bitsc*****
http://www.bitscope.co.jp/




Tep-j-general メーリングリストの案内
Zurück zum Archiv-Index