WordPress リビジョンを削除し、テーブルを最適化してDBの容量を削減

公開日: : WordPress

リビジョンを削除し、テーブルを最適化してDBの容量を削減

WordPress リビジョン機能

リビジョンは過去の記事を保存してくれる WordPress のデフォルト機能です。

リビジョンは下書き保存やプレビューをした時増えていき、DBに大量に残り、IDも肥大化させます。

パフォーマンス向上の為には、リビジョンを削除、無効化、制限が必要になる場合がありますので、そのやり方をメモしておきます。

WordPress リビジョンを無効化

wp-config.php を編集してリビジョンを無効化

wp-config.php に以下のコードを1行足すだけです。

define('WP_POST_REVISIONS', false);//リビジョンを停止

一番下の require_once(ABSPATH . ‘wp-settings.php’); 行より前に追記する。

wp-config.php を編集してリビジョン数を制限

数字を設定するとリビジョンの数を指定することも出来ます。

define("WP_POST_REVISIONS", 5);//0で停止

(ちなみに自分はサイトの設置時に 1 にする事が多いです。)

プラグインでリビジョンを無効化

他にもプラグインでリビジョンを無効化することも出来ます。

「リビジョンコントロール」プラグイン

リビジョンを停止させたり、数の制限や他細かい設定をすることも出来ます。

「Disable Revisions」プラグイン

インストールし、有効化するだけでリビジョンを停止出来ます。

WordPress MySQLのリビジョン削除と最適化

既に不要なリビジョンが溜まってしまっている場合、SQL文で削除出来ます。

SQL文で wp_posts テーブルのリビジョンだけ削除

wp_posts テーブルの post_status 項目が「inherit」で post_type 項目が「revision」になっているデータがリビジョンのデータなので、SQL文は以下になります。

DELETE FROM wp_posts 
WHERE post_status = 'inherit' 
AND post_type = 'revision';

SQL文でリビジョン関連のデータすべてを削除

wp_posts テーブル だけでなく、関連している wp_term_relationships テーブルと、wp_postmeta テーブルのリビジョンも削除したい場合のSQL文は以下になります。

DELETE a,b,c FROM wp_posts a
LEFT JOIN 
wp_term_relationships b 
ON (a.ID = b.object_id)
LEFT JOIN 
wp_postmeta c 
ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

テーブルを最適化して容量を削減

SQL文でリビジョンを削除したはずなのにデータ容量があまり変わらない場合、データがフラグメント化(歯抜け)状態になってしまっています。

その場合は、SQL文でテーブルを最適化します。

OPTIMIZE TABLE wp_posts;

最適化をすると、容量がかなり削減されると思います。
全テーブル最適化したらもっといいと思います。

phpMyAdmin が使える状況ならば、最適化したいテーブルを選択し、プルダウンメニューから「テーブルを最適化する」を選択すると一気に最適化されます。

プラグインでリビジョンを削除

他にもプラグインでリビジョンを削除することも出来ます。

「Optimize Database after Deleting Revisions」プラグイン

リビジョンの削除とデータベースの最適化を行うことのできるプラグイン。

WordPress 自動保存を無効化

リビジョンついでに、WordPress には、記事編集中に内容を定期的に保存してくれる自動保存という機能もあります。

初期状態では、自動保存は有効で、60秒間隔です。
混同しがちですが、自動保存はリビジョンとは違い、DBは肥大化しないものです。

しかし、パフォーマンスが重く感じたりして、うざったい時があるので、その制御方法もメモしておきます。

functions.php を編集して自動保存を停止

functions.php に以下のコードを追記すれば無効化します。

function autosave_stop() {
	wp_deregister_script( 'autosave' );
}
add_action( 'wp_print_scripts', 'autosave_stop' );

注意:
・Theme Checkプラグインで見るとエラーが出るらしい。
・ブロックエディターでは使えないらしい。

wp-config.php を編集して自動保存の間隔の変更

wp-config.phpに以下のコードを追記。

define( 'AUTOSAVE_INTERVAL', 1800 );//自動保存を30分ごとに変更

一番下の require_once(ABSPATH . ‘wp-settings.php’); 行より前に追記する。

関連記事

WordPress レスポンシブ テンプレート 元にサイトを作ってみる その2

DEMO を見る カスタム投稿タイプ functions.php 今回は3つのリストメニュ

記事を読む

レンタルサーバでWordPressを設置してみよう!

WordPress.com 内に、ブラウザだけで無料でサイトを作成出来きるサービスもありますが、Wo

記事を読む

ロリポップでWordPressのPHPバージョンを5から7にする

ロリポップでWordPressのPHPバージョン7.1に変更後「サイトに技術的な問題が発生しています。」

WordPress.org の推奨環境 PHP7以上 MySQL5.6以上またはMaria

記事を読む

wordpress カスタム投稿で 2ページ目以降が404

wordpress カスタム投稿で 2ページ目以降が404になってしまう

wordpress のカスタム投稿で、ニュースのページを作っていました。 ニュース一覧で、ペー

記事を読む

WordPress レスポンシブ テンプレート 元にサイトを作ってみる その1

「レスポンシブ テンプレート の メニューやブログの設置」の記事では、メニューやブログの設置例をやっ

記事を読む

Wordpress VR Test

WordPress で VR させて、360°のパノラマ画像を表示する

WordPress.com内ショートコードで VR させる WordPress.com内で、VR(

記事を読む

WordPress Warning エラー

WordPress フォルダー・ファイル系の関数 is_dir や opendir や exif_imagetype で Warning エラー

Wordpress の管理画面でフォルダーの中身を読み込む関数 opendir でエラー Word

記事を読む

Wordpress 自作フォーム

WordPress 自作フォーム その1(サンプルと設置)

Wordpress でプラグインを使わずにフォームをやってみます。 簡単に名前、メールアドレス、メ

記事を読む

WordPress カレンダー カスタマイズ

WordPress カレンダー カスタマイズ(add_filter版)

前回、「WordPress の PHP をちょっと見てみよう Ⅲ」でフックをやったので、カレンダーで

記事を読む

WordPress プラグイン「 Search Everything 」

WordPressでカテゴリー名も検索にひっかけるプラグイン「Search Everything」

WordPressでカテゴリーも検索にひっかけるプラグイン「Search Everything 8.

記事を読む

WordPress

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js
WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js

WordPress エラーの状態 WordPress 管理画面のテキ

wordpress タイトルの変更
WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title

All-in-One WP Migration で サーバ移動
「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ

1.移行元サイトでのデータエクスポート 「All-in-One WP

DNSサーバーとは
ドメインとは?DNSサーバーとは?

ドメインとは? ドメインとは? ドメインとは、インターネット上のネ

javascriptで複数同じ名前のformの値を取得する
javascriptで複数同じ名前のformの値を取得するとエラー Cannot read property ‘value’ of undefined

Javascript で value の値を取得する このようなHT

→もっと見る

    • 202404
      Mon Tue Wed Thu Fri Sat Sun
      1234567
      891011121314
      15161718192021
      22232425262728
      2930
    にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
    にほんブログ村 FC2 Blog Ranking
    PAGE TOP ↑