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

Back to archive index

izum****@campu***** izum****@campu*****
2003年 1月 29日 (水) 21:13:19 JST


お世話になっております。伊豆です。
速度向上に関係ありそうなスレッドには、素早く反応します。(^^;

Masahiko Nagata <nagat****@ideas*****> wrote:
>osCommerceで使用するMySQL側のデータベースに関してなのですが、デフォルトで
>は48ほどのテーブルがありますが、これって最適化されているのでしょうか?
>
>と言いますのも、specialsテーブルの中のproducts_idにはインデックスが無いので
>すが、これにインデックスを作成してあげると、ページの表示速度(?)が上がるこ
>とに気が付きました。
>
># と言ってもページに表示されるParse Timeの事ですが。
># 仮にトップページ呼び出しで1.000msとか表示されている場合に、0.600ms位まで上
> がります。
># banners_historyテーブルのbanners_idへもインデックスを作成すると、更に上が
># ります。

早速試してみました。
確かに永田さんのおっしゃる通り描画速度が上がりました。
前に速度向上の余地を探したとき、インデックスも一通り見たのですが、
specialsは見落としていました。
ただ、うちの環境ではbanneers_historyに付けたインデックスの効果はあまりありませ
んでした。

>まあParse Timeに表示される時間も、ローカル環境で接続した場合とINTERNET側から
>接続した場合、その他様々な要因(サーバースペック・アクセス状況・回線スピード
>等)によって変化しますので、あくまで参考にしかならないと思いますが。

でも、明らかにparsetimeは下がってますね。効果有とみていいんじゃじゃないでしょ
うか。

>仮に、デフォルトで用意されているデータベースは、「あくまでもデフォルトであり、
>チューニングをする余地が多分にあるよ」って事であれば、これは色々と試す価値あ
>りかなと思っています。

いちおう主キー以外のインデックスも張られているので、デフォルトというかテーブル
の作りっぱなしではないような気がします。

>が、こう言ったチューニングをする上で、(osCommerceに限らず)こういう部分は気
>をつけた方が良いと言う事はあるのでしょうか?
>
># _idとか名称が付いているフィールドは、なんだか効果がありそうな気が...

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

こんなことと、使用頻度の高さ(低さ)から言うと、残りのテーブルに対してのチュー
ンナップの余地はあまり残っていなさそうな気がします。


以上、よろしくお願いします。
--
伊豆 雅宏(Izu Masahiro MailTo:izum****@campu*****)



Tep-j-general メーリングリストの案内
Back to archive index