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で使われるデータは、MySQLデータベースに、どのように格納されているの?
【PHPプログラミング】ヒアドキュメント構文 (“<<<“)使ってみた例~メール確認画面&入力内容などの変数渡し
【WordPress更新情報表示】php/wp組み込みファンクション(fetch_feed)で取得と、プラグインで表示どちらが良い?
【PHP】GD関数『imagewebp』でのWebP変換方法&使えないポイント
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
【WPユーザー名バレ対策】ユーザー名表示からPHP・preg_matchでリダイレクト(wp-json/wp/v2/usersなど)
WordPressユーザーが覚えると便利な条件分岐~投稿記事・固定ページ指定して表示/非表示
【php/pdoクラス】SQLite/phpLiteAdminでデータベース作成&アクセス制限・PDOクラスで記事データ取得してみる
テスト環境(ローカル含む)でPHPサイト開発に使えるツール&XAMPPでやってみた例(設定や表示ファイルetc)
YouTube Data APIを使って、PHPで『タイトル・動画id・サムネイル画像』などを取得してみる(Search: listリソース)
【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意
【PHPファイル取得でmidiデータ配布サイト】glob関数とWordPress関数で、midiダウンロード&関連記事一覧を作成