WPデータベースの余計なデータには何がある?事例と対処方法・あるとイヤなケース

                    更新: 2020/09/18   2369文字

ワードプレスでデータベースにたまる余計なデータ
今回は、ワードプレスのサイトでよくある『データベースにたまる余計なデータ』ってどんなのがあるかをチェックしてみました。データベースの勉強がてらです。
場合によっては余計なデータにはなりませんが、ごちゃごちゃしてくると重くなるといわれています(特に複数テーブルにスキャンするときなど・ただし、記事数・レコード数が少ないときは、そんなに気にしなくていい)。さっそくデータベースを確認してみましょう。

■余計なデータ例1:アンインストールしたプラグインが、テーブルそのまま残していく

Woocommerceの残骸
管理人がネットショッププラグイン『Woocommerce』を試したときの残骸です。アンインストールしたにもかかわらず、顧客や商品情報を格納するテーブルが残ってしまいました
見分け方は〇〇接頭辞_Woocommerce(プラグイン名)_〇〇(テーブル名)みたいになっているので、判別はしやすいです。

ネットショップ運営時には必要な項目ですし、管理人の状況では空テーブルなので、容量は食っていません。邪魔な時は赤ボタンで削除しました。データベース最適化してくれるプラグインがあるようですが、まだ試していません。

管理人はあまりプラグインを使わないほうなのでよくわからないんですが、中には『思いっきりデータベースの容量を食うプラグイン』もあるらしいです。
不使用などであってもしかたないテーブルは、phpmyadminでテーブルを選択し、『操作→テーブルを削除する(DROP TABLE wp〇〇_〇〇のDROP TABLE文が実行される)』で消しておけば大丈夫です(間違って記事などが入っているテーブルを消さないようにしましょう)。

■余計なデータ例2:リビジョンが溜まる

リビジョン(変更履歴や変更前のデータみたいなもの)は、Wikipediaみたいなサイトにするときは必要です。しかし、設定をしておかないと、記事リライトをするたびに前のバージョン本文データが、どんどんデータベースにたまっていきます。リビジョン制限をする前には、同じ記事の本文が大量に溜まっています。

データベース内で見てみます。『wp_posts』というテーブルに記事が入っています。
同じタイトル・同じ内容の記事が大量にデータベースに
同じタイトル・同じ内容の記事が大量にあります。

理由はリビジョンだからです。(フィールドのpost_typeというところがrevisionになる)
リビジョンがデータベースにたまっていく
対して変更しないのに記事の保存を何回もしてたら、こんなにリビジョンがたまってしまいました。

■リビジョンを制限する方法

config.phpからリビジョン回数を設定する事が可能です。当サイトでも実施したので、やり方はこちらをご確認ください。

『データベース圧迫するワードプレス リビジョンを、安定稼動のため削除・制限する(プラグインとconfig.php)』

■リビジョン手動削除の注意点

『リビジョン』となっていて、使っていないものは削除しても問題ないかもしれません。しかし、間違って『記事に使われているバージョン』を消してしまうと、本文がそのまま消えてしまうので注意してください
(管理人は昔、データベースの掃除をしてて記事を吹っ飛ばしたことがあります(笑))

■余計なデータ例3:迷惑コメント

迷惑コメントもデータベースにたまる
ちょくちょく制限をすり抜けて、トラックバックスパムみたいなコメント残してく人がいます(内容はだいたい、海外の激安ブランドサイト)ゴミ箱にぶっこんだ段階では、まだデータベースのコメントテーブル(wp_comments)内に残っています

大量にくるとデータベース圧迫ももちろんですが(コメントのテーブルに対してスキャンさせないようにして、表示速度などに影響させないという手もある)、『ゴミ箱を空にする』操作でクリアします(この操作はデータベース上でなくて大丈夫)。

管理人的にイヤなケース~複数インストール&接頭辞混同・プラグインテーブルでごちゃごちゃ

ガッツリ回しているサイトの案件だと、phpmyadmin上から『実際にカスタムフィールドの値は入っているか』『クエリが別の重複テーブル値を拾ってないか』など確認・操作することはあります。移転のときの接頭辞とかのチェックもそうです。


しかし、なんも考えずにやってしまうと『複数インストール&接頭辞混同・プラグインテーブルでごちゃごちゃ』みたいな状況になります。こうなると表示速度に影響しなくても、調べるときよくわからないという状況に。『どこに何があるかはっきりさせておく』のは、机の整頓もデータベースも一緒です。

あとがき・まとめ・参考リンク

  • WPのデータベース上には、プラグインが残すテーブル・リビジョン・迷惑コメントなどがたまる
  • phpmyadmin操作やconfig設定、管理画面からの操作で整理できる

データベースはたまに見る程度だったんだけど、プラグイン残骸やリビジョン・スパムコメントなどもあることがわかりました。数百記事程度のブログサイト程度なら、多少データがたまっていても、表示速度に影響はないかもしれません。とはいえ、大量にたまる前に、掃除して最適化しておくのがよいでしょう。ついでにテーブル構造などもわかるので一石二鳥です。

■参考リンク・codex データベース構造
http://wpdocs.osdn.jp/データベース構造

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】 - PHP・データベースetc
【タグ】 -

  関連記事

【WordPressカスタムフィールド検索】meta_queryで、シリアライズ値が入ったフィールドを持つ記事をヒットさせるには?
【WordPress別サーバー引っ越し】SQLエクスポート/インポート&Redirectionプラグインを使った方法
【PHPプログラミング】glob関数を使って、特定ディレクトリ内のファイル一覧取得や、出力を行う方法
【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?
YouTube Data APIを使って、PHPで『タイトル・動画id・サムネイル画像』などを取得してみる(Search: listリソース)
【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム
【WordPress条件分岐】is_singleとis_singularって違うの?→idやスラッグ指定、投稿タイプ指定の面で違いが
PHP・shuffleやarrayを使った、画像ランダム表示方法~メインビジュアルやバナー・テキストにも利用可能
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
WPデータベースの余計なデータには何がある?事例と対処方法・あるとイヤなケース
PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)