本文へ移動
TameshiTechLAB GUIDE

WordPressデータベース最適化|リビジョン・transient・autoloadを安全に整理する方法

WordPressデータベース最適化:リビジョン・transient・autoloadを安全に整理する方法 WordPress

先に結論:データベース最適化は「全部削除」ではなく、バックアップ→Site Health→autoload→revisions→transients→不要プラグイン残骸の順で原因を特定してから行います。特にautoloadは毎ページ読み込まれるため、総量が大きいと管理画面・TTFBへ影響しやすい領域です。

WordPressを長く運営すると、記事数だけでなくリビジョン、transient、プラグイン設定、削除済みプラグインの残骸などがデータベースへ積み上がります。ただしDBサイズが大きいこと自体を悪と決めると危険です。ECや会員サイトは業務データが多くて当然だからです。

この記事の範囲
WordPressが重い原因全体は既存の高速化記事、本記事はデータベース内部のautoload・revisions・transients・plugin dataに限定します。Redisは145、サーバー性能は149へ分けることで、同じ説明を繰り返しません。

まず「何が大きいか」を分ける

対象 何が入る 削除前の注意
post revisions 過去の編集履歴 戻したい版を失う可能性
transients 期限付きキャッシュ/一時データ 外部APIやプラグイン動作を理解
autoload options 毎リクエスト読込候補 むやみに削除しない
orphaned meta 削除済み投稿等の関連データ 参照元を確認
plugin tables 独自テーブル 再利用・復元予定を確認

wp_optionsが大きい時の見方

wp_optionsにはサイトURLのような基本設定だけでなく、プラグイン設定、キャッシュ、cron配列など多様な値があります。テーブル全体が大きいからといって一括削除できません。まずautoload対象と非autoload対象を分け、そのうえで大きいoptionを所有者別に見ます。

また、autoload総量が警告閾値を超えていても、すべてが不要とは限りません。毎ページ必要な値はautoloadする方が効率的です。問題は「毎ページ不要なのに大きく、しかも多数ある」状態です。

なお、データベース接頭辞は必ずwp_とは限りません。セキュリティや既存環境の都合で変更されているサイトでは、実際のoptionsテーブル名を確認してから操作します。記事中のwp_optionsは標準接頭辞の例として読んでください。

autoloadはSite Healthから確認する

WordPress 6.6以降はSite Healthでautoloaded optionsの総量を監視でき、既定では約800KBを超えると重要な問題として表示される仕組みがあります。これは「800KBを超えたら即削除」という意味ではなく、調査開始のシグナルです。

WordPress 6.6では大きなoptionの自動autoloadを抑える仕組みも強化されています。古いサイトでは過去に作られたyes/no値が残っているため、新規サイトと同じ挙動とは限りません。

WordPress 6.6以降で知っておきたい2つのautoload基準

基準 WordPressの挙動 意味
単一option 約150KB超 明示的にtrue指定されない限り自動autoloadを避ける仕組み 巨大optionが毎回読まれるのを抑える
autoload総量 800KB超 Site Healthでcritical判定の既定閾値 即削除ではなく調査開始のサイン

この2つは別の基準です。150KBは新規・更新optionのautoload判断、800KBはサイト全体のautoload総量を監視する目安です。数値を一括削除ルールとして使わず、所有プラグインと用途を確認します。

DB最適化の前後で残す証跡

最適化前に、DB総容量だけでなくテーブル別サイズ、autoload総量、リビジョン件数、期限切れtransientの件数を残します。実行後に同じ数字を取り、どの変更で何が減ったかを記録します。これにより「プラグインを実行したから速くなったはず」ではなく、具体的な変化を追えます。

安全な最適化の順番

  1. ファイル+DBの復元可能なバックアップを取得
  2. DBサイズと大きいテーブルを確認
  3. Site Healthのautoload警告を確認
  4. リビジョンの保持方針を決める
  5. 期限切れtransientを確認
  6. 使っていないプラグインの独自テーブルを確認
  7. 1種類ずつ変更して表示・管理画面・CronをQA
削除より先に「所有者」を特定する
wp_optionsの名前や独自テーブル名から、どのプラグイン・テーマが作ったデータかを特定します。現役プラグインの設定値を「古そうだから」で消すと、機能停止や再設定につながります。

大きなautoload optionを見つけたら

option名だけで削除せず、まず作成元プラグインを特定します。現役プラグインなら、その設定画面で不要機能をOFFにする、キャッシュを再生成する、公式のcleanup手順を使う方が安全です。削除済みプラグインの残骸でも、再導入予定やライセンス情報がないか確認します。

WordPress 6.6以降は大きなoptionを自動autoloadしない方向へ改善されていますが、過去に作られたデータは自動で全部最適化されるわけではありません。古いサイトほどSite Healthを定期的に見る意味があります。

リビジョンは何件残す?

リビジョンは単なる「不要データ」ではなく、公開事故から戻すための編集履歴です。記事を頻繁に編集するサイトや、AI/APIで一括更新する運用では直前版へ戻せる価値が高いため、保持数を0にするより「必要十分な世代」を決めます。

一方、自動保存や大量編集で数千件積み上がる場合は保持数を設計する価値があります。更新頻度の高いサイトと、ほぼ固定のサイトで同じ上限にする必要はありません。削除前に、実際に戻したい履歴が残っているかを確認します。

transientは「期限切れ=必ずDBにある」ではない

WordPressのTransients APIは、外部object cacheが有効ならDB以外へ保存されることがあります。またexpirationは「最大保持時間」であり、それより早く消えることもあります。プラグインの仕組みを無視してDBだけ直接掃除するより、WordPress APIや信頼できる運用ツールを使う方が安全です。

transientは「期限あり」と「期限なし」でautoloadが変わる

persistent object cacheがない通常環境ではtransientはDBへ保存されます。期限付きtransientは原則autoloadされませんが、expirationを指定しないtransientはautoload対象になります。大量の「期限なしtransient」があると、名前はtransientでも毎リクエストのautoload負荷になり得ます。

RedisやMemcachedなどpersistent object cacheが有効な場合、transientはDBではなくobject cache側に保存されることがあります。したがってDB掃除記事の手順を全サイトへ一律適用せず、まずキャッシュ構成を確認します。

postmeta・termmetaが肥大化している場合

カスタムフィールド、SEOプラグイン、EC、ページビルダーはmetaを多く使います。投稿数が増えるほど自然に大きくなるので、容量だけで異常判定しません。削除済み投稿に紐づいたorphan dataや、使わなくなったプラグインのキーが大量に残っていないかを調べます。

最適化プラグインを使う場合の注意

ワンクリックcleanupは便利ですが、何を消すかを一覧で見られるものを選びます。実行前にDBバックアップを取り、最初はrevisionsだけ、次にexpired transientsというように対象を分けます。複数種類を一度に削除すると、不具合発生時に原因を戻しにくくなります。

DB最適化とバックアップの順番

最適化のためにバックアップを取ると、そのバックアップ自体がサーバー容量を圧迫する場合があります。保存先を外部へ逃がす、圧縮後にローカルへ取得するなど、復元可能性を保ちながら本番ディスクを圧迫しない方法を選びます。最適化後もすぐバックアップを消さず、数日運用して問題がないことを確認してから世代整理します。

DB最適化を定期化するなら

毎日自動削除する必要はありません。月1回や四半期ごとにSite Healthを確認し、閾値を超えた時だけ対応する方が安全です。自動cleanupを使う場合も、対象項目と保持世代を固定し、EC注文や会員データが対象外であることを確認します。

SQLを直接書く前にSite Health・WP-CLI・プラグイン公式機能を使う

DBを直接DELETEする方法は速い一方、対象を誤ると復旧が必要になります。まずSite Health、プラグイン自身のcleanup機能、WP-CLIなどWordPressの状態を理解した経路を使い、直接SQLは復元可能なバックアップと検証環境がある時の上級手段として扱います。

DB最適化でやらない方がいいこと

  • 本番でバックアップなしにSQLを直接実行
  • wp_optionsをサイズだけで一括削除
  • EC・会員・予約データをブログと同じ基準で掃除
  • キャッシュプラグインを複数入れて「最適化」を重ねる
  • DBが小さくなっただけで高速化成功と判断する

改善効果の測り方

指標 改善前後で比較 解釈
TTFB 同条件で複数回 ページキャッシュ有無も分ける
管理画面 投稿一覧/編集保存 DB影響を受けやすい
クエリ数/時間 Query Monitor等 特定プラグイン原因を探す
DBサイズ テーブル別 削減量だけを成果にしない

最適化後の確認期間

削除直後だけでなく、数日間の投稿保存、検索、Cron、バックアップを確認し、問題がなければ最適化前バックアップを通常の保存ポリシーへ戻します。

Redisを入れる前にDBを整える理由

Redisは繰り返しクエリを減らせますが、不要なautoloadや異常なクエリを直す代替ではありません。先にDB構造を整え、まだ管理画面やログイン利用者が遅いなら145のpersistent object cacheを検討します。全体の速度診断は150、復元用バックアップは既存バックアップ記事へ分けています。

公式情報・参考資料

まとめ

WordPress DBの最適化は「掃除」より「原因特定」です。autoload、revisions、transients、plugin tablesを分け、1変更ずつ効果と副作用を確認します。バックアップと切り戻しがある状態で進めれば、速さだけでなく保守性も上げられます。

コメント

SITE NAVIGATOR151本から、いま必要な記事だけ探す
索引を読み込んでいます…
TameshiTechAI Tool Lab
AI TOOL LAB / TCO + BREAK-EVEN

「便利そう」で契約せず、実際の仕事で元が取れるか試す。

AIの処理時間だけでなく、人が確認・修正する時間、学習・初期設定、利用人数まで含めて2候補を同じ条件で試算します。入力は外部送信しません。

ブラウザ内だけで計算個人情報不要性能ランキングではない公式情報へ直リンク
OFFICIAL SNAPSHOT

主要プランの公式情報を、確認日つきで見る

契約価格を自動決定する機能ではありません。最終支払額・利用上限・データ条件は公式画面で確認してから下の試算へ入力してください。

OpenAI個人向け

ChatGPT Plus

$20/month

月額課金。API利用は別料金。

  • Freeより広いモデル・ツール利用枠
  • Deep Researchなど拡張機能
  • 画像生成・ファイル分析
  • 利用上限は変動する場合あり
公式ページを確認 ↗
OpenAIチーム向け

ChatGPT Business Standard

$20/seat/month annual; $25 monthly

年額課金時$20/月、月額課金時$25/月。

  • ChatGPT・Work・Codex機能
  • SAML SSO・MFA
  • 各種コネクタ
  • ビジネスデータは既定で学習不使用
公式ページを確認 ↗
Anthropic個人向け

Claude Pro

$17/month annual equivalent; $20 monthly

$200年払いで月換算$17、月払い$20。税別表示。

  • Freeより多い利用枠
  • タスクの引き継ぎ・スケジュール
  • Claude Code
  • Projects・Researchなど
公式ページを確認 ↗
Anthropic2〜150人

Claude Team Standard

$20/seat/month annual; $25 monthly

年払い時$20/席/月、月払い時$25/席/月。

  • Teamは2〜150人
  • Proより多い利用枠
  • 中央請求・管理
  • SSO・組織検索
公式ページを確認 ↗
Google日本

Google AI Plus / Pro / Ultra

契約画面で現在価格を確認

日本向け公式ページはプラン構成を確認。価格はアカウント・時期の契約画面で再確認。

  • AI Plus 400GB
  • AI Pro 5TB
  • AI Ultra 20TB〜
  • Gemini・Googleアプリ連携の利用枠はプランで異なる
公式ページを確認 ↗

確認日:2026-10-08。税・為替・キャンペーン・API従量課金・地域差は別途確認してください。

0. 何のために使う?

用途は計算式を変えません。結果のあとに読む記事を絞るために使います。

1. 共通条件
2A. 候補A
2B. 候補B
3. 契約前チェック
SIMULATION

まだ計算していません

現在の作業時間と、AI利用後の「AI作業+人の確認・修正」を分けて入れるのがポイントです。

試算は入力値にもとづく参考値です。TameshiTechが生産性・利益・料金・将来の成果を保証するものではありません。