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 カレンダー カスタマイズ(add_filter版)

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

記事を読む

WordPress の PHP をちょっと見てみよう Ⅱ

WordPress の PHP をちょっと見てみよう Ⅱ

前記事の続きで、wp-settings.php の68行目あたりから見ていきます。 <今回のピ

記事を読む

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

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

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

記事を読む

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

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

記事を読む

WordPress レスポンシブ テンプレート

WordPress レスポンシブ テンプレート の メニューやブログの設置

前回の 「WordPress レスポンシブ テンプレートコーポレート用(シンプル・カスタマイズ用)ダ

記事を読む

WordPress の PHP をちょっと見てみよう Ⅲ

WordPress の PHP をちょっと見てみよう Ⅲ

前記事の続きで、wp-settings.php の91行目あたりから見ていきます。 次は、wp

記事を読む

Wordpress 自作フォーム 2(注意点とエラー:This is somewhat embarrassing, isn’t it? など)

WordPress 自作フォーム その2(注意点とエラー:This is somewhat embarrassing, isn’t it? など)

前回(WordPress 自作フォーム 1)のつづきです。 今回は細かいところや注意点とエラーなど

記事を読む

WordPress Twenty Seventeen function.php

WordPress twentyseventeen の function.php を見る – その1

WordPress の最低限の機能だけのシンプルなテンプレートが欲しかったので、作っておくことにしま

記事を読む

wordpress カスタム投稿を一覧(ループ)で表示する

wordpress カスタム投稿を一覧(ループ)で表示する

カスタム投稿を一覧で表示する方法がいろいろあります。 query_posts 関数が非推奨になって

記事を読む

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

→もっと見る

    • 202205
      Mon Tue Wed Thu Fri Sat Sun
      1
      2345678
      9101112131415
      16171819202122
      23242526272829
      3031
    にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
    にほんブログ村 FC2 Blog Ranking
    PAGE TOP ↑