WordPress

WordPressのデータベースをプラグインなしで整理してみた

WordPressのデータベースをプラグインなしで整理してみた
「なんか読み込みが遅いなぁ。」
そう感じてきたので、WordPressのデータベースを見直すことにしました。
今までリビジョンだけは気にしていたけれど、その他は全く知識がありません。今回はリビジョン以外にも切り込んでいきます。
結論から言うと、容量を約22%も減らすことができました。

 

データベースの整理ってどうするの?

やることは2つ。

  1. 要らないデータを消す
  2. テーブルを最適化する

 

手軽に整理するには?

プラグインを使うのが良いでしょう。
おススメは「WP-Optimize」で、データベースだけでなく、画像の圧縮やキャッシュまで管理してくれる優れモノです。
公式サイト
WP-Optimize(WordPress.ORG)

 

プラグインを使わずに整理するには?

MySQLデータベースを直接編集します。
管理するソフトで有名なのはphpMyAdminですね。
SQL文を作成して、実行していく流れになります。

データベースを編集する前に必ずバックアップを取りましょう

 

SQL文はどのように書くの?

WordPressのデータベースに不要なものを消すSQL文をまとめてみました。
※テーブル名は初期設定を使用しています。
 

リビジョンを消す

DELETE FROM wp_posts WHERE post_type = 'revision';

 

自動下書きを消す

プラグインで使われている場合があるらしいので、要チェックです。

DELETE FROM wp_posts WHERE post_status = 'auto-draft';

 

ゴミ箱の中身を消す

DELETE FROM wp_posts WHERE post_status = 'trash';

 

スラッグを変えた履歴を消す

DELETE FROM wp_postmeta WHERE meta_key = '_wp_old_slug';

 

複数ユーザーの同時編集を警告するデータを消す

投稿を1人で編集していても自動的に作られ、公開後に消えずに残ることもあります。

DELETE FROM wp_postmeta WHERE meta_key = '_edit_lock';
DELETE FROM wp_postmeta WHERE meta_key = '_edit_last';

 

投稿をゴミ箱に入れた履歴を消す

DELETE FROM wp_postmeta WHERE meta_key LIKE '%wp_trash_meta%';

 

スパムコメントを消す

DELETE FROM wp_comments WHERE wp_comments.comment_approved = 'spam';

 

コメントをゴミ箱に入れた履歴を消す

DELETE FROM wp_commentmeta WHERE meta_key LIKE '%wp_trash_meta%';

 

キャッシュを消す

WordPressには「Transients API」という一時的にデータベースへ記録を残すAPIがあります。
消しても問題ないという意見がある一方で、予期せぬエラーが出る可能性を指摘する声もありますので、バックアップを取ったうえで自己責任でお願いします。

DELETE FROM wp_options WHERE option_name LIKE '%_transient_%';

 

プラグイン「Akismet」の不要データを消す

スパムコメント対策に「Akismet」を使っている場合、意外と不要なデータが溜まります。

DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet%';

 

データベースを最適化する

不要なデータを消しただけでは、データベースの容量は変わりません。
仕上げに各テーブルを最適化します。必要に応じてテーブル名を追加してください。

OPTIMIZE TABLE `wp_commentmeta`, `wp_comments`, `wp_links`, `wp_options`, `wp_postmeta`, `wp_posts`, `wp_terms`, `wp_term_relationships`, `wp_term_taxonomy`, `wp_usermeta`, `wp_users`;

OPTIMIZE TABLE 構文は、MySQLのバージョン「5.6.17」以前だとテーブルにロックがかかるのでご留意ください。

 

まとめ

プラグインを使わずにSQL文でデータベースを整理することは可能です。
デメリットは学習コストと手間がかかることですが、サーバーへの負荷が減るメリットも見逃せません。
また、データベースを触る時には必ずバックアップを取りましょう。この投稿を書くにあたり、いろいろ触っていたらおかしくなってしまいました。バックアップ様様です。

-WordPress
-, , , , , , , , , , ,