WordPressのデータベースをwp-cliで軽量化するベストプラクティス

WordPressを長く運営していると、データベースはどんどん大きくなっていきます。
投稿やコメントだけでなく、不要になったリビジョンやゴミ箱に残ったデータ、古いトランジェントキャッシュなどが溜まり続けます。

私もあるサイトでバックアップが数百MBに膨らみ「これはそろそろ整理しないとやばい…」と感じたことがありました。
そんなときに役立つのが wp-cliを使ったデータベースの軽量化 です。

GUIプラグインに頼らず、コマンド一発で不要データを掃除できるのは本当に便利です。

1. データベースの最適化

まずはシンプルにデータベースを最適化します。

wp db optimize

MySQL の OPTIMIZE TABLE を全テーブルに実行するイメージです。
テーブルの断片化を解消し、ディスク容量を少し節約できます。

2. リビジョンの削除

WordPressは記事を更新するたびにリビジョンを保存します。
数年運営していると「リビジョンだけで数万件」ということも珍しくありません。

まとめて削除するには以下。

wp post delete $(wp post list --post_type='revision' --format=ids) --force

私は実際にこれを流したら、一気に数万件のレコードが消えてDBサイズが数十MB減りました。

3. ゴミ箱・スパムコメントの削除

不要な投稿やコメントも残り続けます。

ゴミ箱の投稿を削除

wp post delete $(wp post list --post_status=trash --format=ids) --force

スパムコメントを削除

wp comment delete $(wp comment list --status=spam --format=ids) --force

ゴミ箱コメントを削除

wp comment delete $(wp comment list --status=trash --format=ids) --force

コメントが大量にたまっているサイトではかなり効果的です。

4. トランジェントの削除

キャッシュ的に使われるトランジェントも、不要なものが残りがちです。

wp transient delete --all

プラグインやテーマが作った一時データを一掃できます。
削除しても再生成されるので、基本的に問題はありません。

5. 不要なオプションの確認

一部プラグインを削除したあとにオプションが残っていることもあります。

オプションテーブルを一覧するには以下。

wp option list --search=plugin_name --autoload=on

autoload=on の不要データが多いと、サイトの読み込み速度にも影響します。
不要なものは削除しておくのがベストです。

6. 定期実行で自動化

一度掃除しても、時間が経てばまた溜まっていきます。
そこで cron と組み合わせて定期実行するのもおすすめです。

例:毎週日曜深夜にDB最適化を実行

0 3 * * 0 wp db optimize --path=/var/www/html

ただしリビジョンやコメント削除は不可逆なので、バックアップを取ってから 自動化するのが鉄則です。

実際に使ってみて感じたこと

wp-cliを使ったDB掃除は「数字で効果が見える」のが面白いです。
実際に私の環境では、200MBあったDBが80MBまで縮小でき、バックアップ時間も半分以下になりました。

一方で「全部削除してしまうと困るデータ」もあるので、何を消して良いか判断するのが大切だと感じました。

まとめ

  • wp db optimize で断片化を解消
  • リビジョン・ゴミ箱・スパムコメントを一括削除
  • wp transient delete --all でキャッシュもリフレッシュ
  • 不要なオプションはパフォーマンス改善につながる
  • 定期実行するとメンテナンスコストが下がる

WordPressを長期運営しているなら、データベースの軽量化は避けて通れません。
wp-cliを使えば、手軽かつ効率的にDBを整理できます。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント