とあるPHPプログラムで
タイムアウトエラーがでて使いモノにならないからと
プログラムの高速化を頼まれたので、
ソースを調べてみたところ
ボトルネックとなっている部分は既に十分最適化されていて
これ以上触りようが無い。

フレームワークを使用しているので、
保守・安定性を捨ててその部分に特化したコードを書けば
更に高速化することは可能だけど、
既に客先で動いているシステムなので
あまり動作が不安定になるようなことはしたくないなぁ……。
などと思いつつソースを眺めていたら、
他のプログラマの発言から
 特定の日に特定のデータを含むレコードの有無が分かれば良いんだから
 検索元のテーブルと検索先のテーブルを入れ替えれば良いんじゃね?
と思い立ち、早速コードを書き換えてみると……成功っ。
今までは表示するのに45秒ほどかかっていたのが、
書き換え後は8秒と1/6の時間で表示されるように。
PHP&DBプログラムは
サーバ環境によって実行速度が結構変わってくるけど
これだけ改善したらさすがに問題ないでしょ。

しっかし単に見方を変えただけでここまで速度に差が出てくるんだから
コードを書くときはホント、考えて書かないといけないなぁ。

コメント