MobavleType 3.2 への移行を考えてテストをしているわけなんですが、BerkeleyDB に関してはテンプレートに recently_commented_on 利用していると問題があります。
この件については ogawa さんの下記の記事が非常に参考になり、加えてこの件に関するパッチも作成されておられます。
Ogawa::Memoranda : MT 3.2でrecently_commented_onとBerkeleyDBに嵌っている人が多い件について
要するに、「recently_commented_on の仕様変更」と「MT::Entry->comment_latestでやたらメモリを消費するという、BerkeleyDB特有の問題」によってメモリ消費量増大やパフォーマンス低下が発生し、リビルドでタイムアウトしてしまうことがある、ということですね。
ただ当サイトにおいては、エントリー数増加に伴ってリビルドなどのパフォーマンスが悪く、以前から他のDBMSに移行しようと考えていました。ロリポップ!では MySQL も利用できますが、いかんせんMySQLのサーバ負荷が読めないため二の足を踏み、騙し騙し BerkeleyDB のまま運用していました。
そこで CHEEBOW さんの「MovableTypeで行こう!」に書かれていた記事
MovableTypeで行こう!: BarkeleyDBからSQLiteへ移行してみる
でロリポップ!にも SQLite モジュールがインストールされている事を知り、いい機会なので早速 MT3.2 より先に SQLite へ移行してみることに。
移行作業にあたっては、ogawa さんの下記記事が参考になりました。
Ogawa::Memoranda : SQLiteをMovable Typeで使ってみる
実際に移行時に使ったのは、これもやはり ogawa さんの下記 CGI スクリプト
Ogawa::Memoranda : mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト
を利用し、BerkeleyDB -> SQLite にコピー。mt.cfg をさくっと変更してデータの移行を確認。リビルドで完了。
ogawa さん、大変参考になる記事をありがとうございました。
9 Comments