WordPressの「投稿」や「固定ページ」は編集の履歴がリビジョンとして保存されます。前に戻りたいときにとても便利で、また、安心な機能です。しかし、リビジョンは無制限に保存されるようで、データベースの使用量が増え、それに伴ってアクセス時間にも影響が考えられます。
例えば、とある記事では9のリビジョンが保存されているようです。
このリビジョンですが、消したり、保存数を制限できるようです。あまり古いリビジョンを保存しておいても、それを使うことはありそうになく、無駄なだけだと思います。ということで、このブログのリビジョンを整理してみました。
現状把握
まず、今のデータベースの状態を確認しておきます。WP-DBManagerというプラグインで調べた状況です。
投稿記事に関するテーブルはwp_postsです。レコード数が8,614、データの使用量が40.3MiBなどです。
全体は最後の行。
全情報はこちら。
WP-Sweep
レビジョンを消去するプラグインはいくつかあるようです。その一つが、WP-Sweep。
これをインストールし、このツール画面を開くとこんな感じで表示されます。
リビジョンの数が3,743、%が43.46%だそうです。「%」はデータベースの使用割合でしょうか?ちゃんと調べていませんが…。
「掃除」を押すとリビジョンをすべて消してくれるようです。ですが、全部消すのもどうかと思います。せっかく前の状態を確認したり、それに戻したりする機能を用意してくれているわけですから、それを殺してしまうのももったいない。
なお、WP-Sweepの掃除対象はリビジョンだけでなく、ここでは省略しますが、他にもたくさんあります(上の画像はほんの一部)。
WP Revisions Control
リビジョンを全部消すのではなく、残す数を制限できるプラグインはないかと調べて見つけたのが、WP Revisions Controlです。
これはインストールしても専用画面はないので、ちょっとわかりにくいです。
レビジョンの制限数は「投稿設定」の中に追加されます。
標準ではすべて空欄で、「全部残す」ことになっています。ここに希望数を入力します。私はすべて5にしてみました。「変更を保存」を押して反映します。
制限数を設定しましたが、これだけで古いリビジョンが消えるわけではありません。記事を編集して保存する際に新しいリビジョンが作られ、この数を超えた古いものが消されます。ですので、記事を全部編集する必要があります。
しかし、それはあまりに面倒。「一括操作」で対応します。メニューに「超過したリビジョンを削除」の項目が追加されていますので、これを「適用」します。これでも一覧に表示されている記事しか一括操作できませんので、記事数が大量にあると結構大変です…。
実施後、先ほどの記事をチェックしたらちゃんと「5件のリビジョン」になっていました。
全体を見てみます。先ほどのWP-Sweepの画面を今一度開きます。
リビジョン数は3,743だったものが3,000に減っています。
ここでは、「投稿」だけを処理しました。「固定ページ」も同様に処理したらこうなりました。
さらに減って2,865になっています。ここまで減ると結構な割合じゃないでしょうか。
WP-DBManagerの画面でもチェックしてみます。
wp_postsのレコード数は8,164だったものが7,735に減っています。しかし、データの使用量は40.3MiBのまま変っていません。それどころか、オーバヘッドが0バイトだったものが8.8MiBと大きく増えてしまっています。リビジョンは減ったものの、これで良かったのかどうか判断に苦しみます。
全体はこちら。
まとめ
投稿や固定ページの保存リビジョン数を制限することができました。また、既存の記事のリビジョンもその制限数に合わせて削除しました。これによって確かにレコード数は減りました。しかし、データの使用量が減らないなど、結果は満足とは言い切れません。
もう一つの大きな狙いのページアクセスの時間ですが、なんとなく速くなったような気もします。少なくとも悪化はしていません。
こういう結果ですので、「お勧めします」とまでは言えませんが、参考の一つにでもなればと思います。
「投稿」や「固定ページ」の一覧(管理画面)でリビジョン数を表示するプラグインを作りました。こちらのページをご覧ください。