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を整理できます。

コメント