「重い」との指摘を受けたので、パフォーマンスチューニングを。まだたいしたことはやってませんが。
現在重い順に並べると以下のとおり
「出馬表」>「ランキング」>>>「種牡馬詳細」>「調教師詳細」=「騎手詳細」>「馬詳細」>「レース結果」>「路線図」
・ランキングはどうせあまり見られないのでどうでもいいんですが、出馬表が重いのは問題だとは思ってます。ただ、表示項目が多く、どうしてもSQLの発行回数が増えてしまうので、致し方ない部分があります。特に種牡馬テーブルを遡って系統を表示しているので。あんまりメンテの余地がない・・・。
・一方路線図は3次元連想配列にぶち込むなど一番苦労したけど、その甲斐があってとても快適。
・その他の検索で実行時間を計測したら意外にもプログラム自体はそれほど遅くなかった(0.3〜1秒くらい)。
・馬検索での無駄なSQLの発行を少し削った。この辺は最初の頃に書いたコードなので、少々無駄がある。そのうち他の検索も直す予定。
・実は3〜4種類のロボットが常駐状態で、アクセスがすごいことになっていたので、Robots.txtを書き換えて、DBへのロボットのアクセスを完全に弾くことにした。これは結構効果があると思う。
・あとは転送量を減らすこと。imgファイルは
タグに書き換えるかも。この点でのボトルネックは、結構でかいJavascriptとCSSファイルの転送かもしれない。
----------------
・パフォーマンスチューニングは集中的にやったことがありますが、発行されるSQLの最適化よりもそもそもソースコードかDB設計に問題があるケースが大半(もちろん最適なSQLが書かれてるに越したことはないけれども)。クリティカルなのはDB設計のほうで、いまさら変えられないので、仕方なくSQLの最適化で凌いで行こうという感じになりドツボに・・・。
この記事に対するコメント