データベースがデカ過ぎます

1440 letters | 1174 views | コメントする

 WordPressがデフォルトで吐いてるRSSでは自分の好みに合わないって時、固定ページ用テンプレートを作ってHTMLではなくRSSを吐かせちゃえば良い。その方法で結構大きめのRSSを作ったら、アグリゲーターがタイムアウトしてた。一回のタイムアウトぐらい大したことじゃなくて、おそらく次回のアクセス時には、前回のアクセスによって作られたキャッシュがあるはずだから、おそらく固定のHTMLでも読み出すかのように動作するだろうと思ってたのに、何回読み出しても全くキャッシュが効かず、毎回待たされる。ログインしてるせいかなとか、別のIPアドレスからならキャッシュが効くかなとか予想してたが、ほぼ全てのアグリゲーターがこけるようだ。フォルダにはキャッシュファイルが作られているにもかかわらず、読み出しに使われていない様子。しょうがないので以前使ってた別のキャッシュプラグインにしたら、ちゃんとキャッシュが効いてスルスル読み込めた。よそはどうか知らないが、うちの環境では効くやつと効かないやつがあるらしい。

 なかなか、キャッシュが効いてないんじゃないかってな発想に到達できなくて、どうやったら高速にRSSを作れるかって事を考えたりして、最終的に良いなと思ったのは、出来上がったRSSをそのままデータベースに入れちゃって、リクエストがあったときにそれを読み出そうとかって言う遠回りをしようとしてた。それを実現するためにデータベースを直接いじるわけだから、どうなってるんだかphpMyAdminで確認したんだけど、トータル100MBというサイズに驚かされた。文章は16MBだけどSimilar Postsがその3倍の49MB使ってやがる。先日バッチサイズを大きくしたからその影響かと疑ったが、サイズを大きくしてない嫁のブログでもだいたい文章のサイズの3倍くらいになってたから関係ないと思う。そうか、新規投稿の時、こんなデカイものを扱ってたから時間がかかったんだな。しかしこの機能は古い記事に勝手にリンクしてくれて、あたし自身が楽しめているので、削除する気にならないんだよな。他にも自動でどんどんタグを付けて貰ってるから、タグも相当な大きさのデータになっている。あと、アクセス解析も数十メガの情報を蓄えていた。解析なんて人間相手ならGoogleで十分だが、あたしはボットのためにサイトを作っていて、ボットの訪問が気になる派なので、どうしてもWordPressに組み込んだ解析が欲しい。しかし毎日数千件のボットが来てる現状だから、古い物をすぐ消すような設定にしないとデータベースが大きくなってしまう。

 別にレンタルサーバーのデータベースだし、それも容量制限がきついわけじゃなく、どんどん使って良いんだけど、定期的に自動でやらせてるバックアップのファイルサイズが大きすぎるが困る。それをFTPでダウンロードしたくないのでGmailに送らせて貯め込んでるが、どっちにしろデカイと受信するのが憂鬱だ。どうにか小さくしておきたいところ。解決方法はなし。どれも必要でやってる物で削れないから、肥大化を受け入れるしかない。

 rNoteでデータベースを使わずにやってたときより重い気がしてるが、まぁそりゃデータベースを使うことでより大きなデータにアクセスしていろいろ出来るようになったんだから、出来る事を全部やらせてたんじゃ重くもなるな。

たぶん関連のある記事:

コメントは終了しています。