リビジョンがどんどん増える
WordPressで記事を書き、「下書き保存」するとその状態が保存されます。また、自動的にも保存してくれます。それらはリビジョンとして管理されており、以前のものを見たり、ある時点の状態に復元することができます。
大変ありがたいのですが、一方で、リビジョンがたまりすぎてデータベースを消費してしまうという問題もあります。あまりにも古いものがあってもしょうがないですし。
ということで、古いリビジョンを整理するプラグインを探しました。
ちなみに、リビジョンは「投稿」だけでなく「固定ページ」も同様に保存されています。
プラグインを探す
検索してみると、こういう目的のプラグインはたくさんあるようです。試してみたのは次の二つです。
- Advanced Database Cleaner
- Optimize Database after Deleting Revisions
結果的には後者の方を採用したのですが、まずは、前者の方を止めた理由から。
Advanced Database Cleaner
管理画面から普通にインストールします。有効化して、このプラグインの設定画面を開きます。
一番上にRevisionsとあります。Keep lastで保存する日数の指定ができるようです。これでリビジョンの削除ができそうです。
が、しかし、これって、保存日数の指定はできますが、保存するリビジョン数の設定はできないようです。つまり、最新のもの以外はすべて消してしまうみたいです。これはこれでちょっと不安。直近のいくつかは保存しておきたいように思います(日数に関わらず)。
Optimize Database after Deleting Revisions
そう言うわけで、別のプラグインを探しました。
本当はこっちの方を先に見つけていました。名前もズバリ「リビジョンを消してデータベースを最適化する」ですしね。
躊躇したのは「使用中のWordPressバージョンで未検証」という点。どうやら、5.5での動作検証がなされていないようなのです。でも、きっと大丈夫だろうと思い、お試しでやってみることにしました。
インストール、有効化の手順は普通です。
設定
メニューの「設定」の中の「データベース最適化」がこのプラグインです。
「設定を変更する」をクリックします。
どれを対象とするかを選ぶようになっています。もうちょっと下がるとリビジョン関連があります。
「Delete revisions older than」は保存日数です。指定した日数よりも古いリビジョンは削除されます。
「Maximum number of – most resent – revisions to keep per post / page」が保存する直近のリビジョン数です。こちらを使えば、日数によらず、指定したリビジョン数を保存できます。
とりあえず、「10」と設定してみました。
定期的に実行するようにもできるようです。ここでは、「予定なし」としておきます。つまり、手動で実行するということです。
これで「設定を保存」します。
「最適化ページに戻る」で前の画面に戻ります。
確認
Analyzeで最適化対象を確認できます。まずは「Analyze (summery)」の方を試してみます。
68個のリビジョンが削除対象としてあるようです。
「Analyze (detail)」も見てみます。
記事ごとにいくつのリビジョンがあるのかがわかります。今回は「10」を設定しているので、10より多いものがリストアップされています。
下に下がるとデータベースのテーブルの状態も表示されています。
実行
Optimizeを押せば最適化が実行されます。「Optimize (detail)」の方を押してみます。
データベースのサイズが約62MBから59MB弱まで削減できました。上手く行ったようです。
ところが…
期待通りに整理できたようなので、別の大きなブログでも実施してみました。
716MB程度だったデータベースが、最適化実施後には766MBと、逆に増えててしまいました。うーむ…。
正直なところ、今回は、この大きなブログで10000文字を超えるページを編集する際に下書き保存に時間がかかること、プレビューには数分かかることがことの始まりでした。リビジョンを減らしてデータベースを整理すれば速くなるかなと思ったのです。しかし、逆に使用量が増えてしまうとは想定外です。プレビュー時間も全然速くなりません。無駄だったんでしょうか…。