うちのページのアクセスログの表示はとても遅くてあくびがでるのですが、サーバをT20に変えてからはさらに遅さに磨きがかかっております。件数はそんなに多くはないものの、『そもそもPostgreSQLではcount(*)が遅い』のと『キーワード表示とリンク元表示はそれなりに時間がかかる』ということで、問合せ方法やインデックスを工夫してみても劇的には早くなりそうにありません。
ということで、高速化はあきらめて、表示できるところからちんたら表示するようにしてごまかすことにしました。やったことは下記のとおり。
<Files "index.php">を追加 (php.iniでの設定をキャンセル)
php_value output_buffering off
php_value output_handler off
</Files>
function print2($str)という関数を作成してこちらから表示するように変更
{
echo mb_convert_encoding($str,"SJIS");
}
最近のPHPを普通に使うと、出力が全てバッファに入った後でスクリプトの動作が終了してからまとめて転送されます。回線が混雑している場合には非常に効率がよいと思いますが、スクリプトの動作に時間がかかる場合には動作が完全に終了するまで一文字も表示されないので余計に遅く感じてしまいます。
ということで ちんたら表示に変更してみたところ、動作は若干遅くなっているはずなのですが、始めの数行は一瞬で出てくるのと 一年表示とかさせても項目ごとに段階的に表示されるので、反応が良くなったかのように錯覚してしまいます。根本的にテーブル設計からやり直せばもっと速くなるとは思いますが、自分でもあんまり見ない(笑)ページに手間ひまかけてもしょーがないので、これでよいことにしておきましょう。