tiarraMetro を使ってると、どうしても初回読み込みが遅いのでしばらく使っていなかった。
が、IRC クライアントをずっと立ち上げてるとスマフォの電池を食いまくるので、tiarraMetro の高速化を図ることにした。
とりあえず MySQL に slow_query_log を仕込んでみたところ、未読数取得のSQLが重いらしいことがわかる。
INDEX 貼ろうかと思ったが既に貼ってるし、コードに手を入れるのはいやだし。
よくよく考えると log テーブルは追記のみなので、過去の log は定期的に別テーブルに移せばいいんじゃね?ということで以下の作業を実施した。
まずは tiarra を止める。
# service tiarra stop
既存のテーブルを rename する。
# mysql -u tiarra -p tiarra
mysql > rename table log to log_20120917;
新規テーブルを log と同じ構成で作成する。
mysql> create table log like log_20120917;
mysql> exit;
tiarra を起動する。
# service tiarra start
これで初回読み込み時の待ち時間が10数秒から数秒に高速化された。
できれば待ち時間無しが望ましいけど……。
で、あとはこれを cron に仕込んで定期的に実行すればいいんじゃないだろか。
table 名はその日の日付にしといて。