静的生成に切り換え

投稿日:

過負荷警告が出るんで諦めてた重た〜い処理のPHPデータベース連動スクリプト。でもやっぱこっちの方が明らかに利便性高くて便利なんで、色々悩んだ末ドキュメントの静的生成に切り換えました。

従来

printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>\n", $prod[1], $prod[2], $prod[4]);

みたいに記述してたのを

fwrite($fp,"<tr><td>$prod[1]</td><td>$prod[2]</td><td>$prod[4]</td></tr>" ."\n");

みたく全部書き換え、出力をHTMLファイルに吐かせる(そして、PHPスクリプトはcronで定期的に呼び出す)という手法。

以前よりも更に凝った方法でクエリーのループを回すようにした(^^;んで処理中のサーバ高負荷時間はより長くなりましたが、ユーザーからのリクエストがある度にクエリーを発行してドキュメントを生成するわけじゃないんで、トータルの負荷率は大きく下がったみたい。

(1日に何百回と呼び出されるファイルだったんで特に同時アクセスとか食らうとすげぇload avarageになってたのが、いまは単なるHTMLなんで読み出し時のCPU負荷ほぼゼロ:^^;)

データベースの変更が即時には反映されないのが若干の不満ですが、cronでの呼出頻度を上げて負荷を掛けるほどのことでもないんで取り敢えず我慢します(^_^;)