WPデータベース解説:標準テーブルの役割と怖くないTransientの安全なメンテ方法

 「WordPressでブログを書いているけれど、データベース(DB)の中身は見たことがない…」という方は多いはず。
 でも、実はDBはあなたのWebサイトの大切なデータを預かる「巨大な倉庫」です。

WordPressデータベースの全体像:12個の標準テーブル一覧

 WPをインストールした時に自動で作られる12個の標準テーブルの役割をまずは表で解説し、その中でも特に「自分でもメンテナンスしやすい」重要な項目をピックアップして後ほどご紹介します。

カテゴリテーブル名何が入っているか(ざっくり)
投稿・固定ページwp_posts記事の本文、タイトル、固定ページ、メニュー。
wp_postmeta記事の付随情報(カスタムフィールドなど)。
設定・キャッシュwp_optionsサイト設定、プラグイン設定、Transientデータ。
分類(タグ・カテゴリ)wp_termsカテゴリ名やタグ名そのもの。
wp_term_taxonomy「これはカテゴリ」「これはタグ」という分類。
wp_term_relationshipsどの記事にどのタグが付いているかの紐付け。
wp_termmetaカテゴリやタグの付随情報。
ユーザーwp_usersユーザー名、パスワード、メールアドレス。
wp_usermetaユーザーのプロフィール詳細や権限。
コメントwp_comments投稿されたコメントの内容。
wp_commentmetaコメントの付随情報。
リンクwp_links(現在はほぼ使われない)リンクマネージャー用。

【厳選】特に意識しておきたい5つの重要テーブル

 多くのブロガーさんは、「記事をたくさん書こう!」と毎日頑張っています。
 でも実は、記事を書けば書くほど、DBの中身は雪だるま式に増えていきます。 

  • 記事を書くたびにデータが溜まる(wp_posts)
  • 記事を分けるためにカテゴリーが増えてデータが溜まる(wp_terms)
  • さらに、あなたが知らない間にも「一時的なメモ(Transient)」が勝手に溜まり続ける……

 この小さな積み重ねが、気づかないうちにWebサイトを重くさせ、疲弊させてしまう原因なんです。

 そこで、数あるテーブルの中でも、特に「これだけは知っておいてほしい!」という5つをピックアップし、サイトへの影響度を点数にしてみました。

テーブル名重要度(いじりやすさ)特徴
wp_posts★★★☆☆記事の本体。消すとサイトが空っぽになる最重要項目。
wp_comments★★☆☆☆スパムが溜まると重くなる。定期的な掃除が必要。
wp_terms★★☆☆☆カテゴリが増えすぎた時に整理が必要な場所。
wp_users★☆☆☆☆ログイン情報の核。滅多に触らない。
wp_options★★★★★設定と「ゴミ(一時データ)」が溜まる場所。一番メンテの恩恵が大きい!

 5つのピックアップの中から、更に焦点を当てると2つに絞られます。

  • wp_posts (★4): 「ブロガーの努力の結晶。でも、リビジョン(書き直し履歴)などで意外とゴミも溜まりやすい」
  • wp_options (★5): 「自分では操作していないのに、システムが勝手にメモを書き溜めて、いつの間にか一番太りやすい場所だから」

データベース操作に欠かせない「3つの要素」

 まずは、データベースを扱う上でよく登場する3つのキーワードについて、それぞれの役割を整理しておきましょう。

データベース(DB)
膨大なデータを整理して保管しておく「データの格納場所」です。Webサイトの投稿内容やユーザー情報などがここに集約されます。

SQLクエリ
データベースに対して「データを取り出す」「書き換える」といった命令を出すための「専用言語(指示)」のことです。

phpMyAdmin
本来は文字入力(コマンド)で操作するデータベースを、ブラウザ上でマウス操作できるようにした「管理用ツール」です。

勝手に溜まる「ゴミ」の正体:Transient(トランジエント)とは?

 メンテナンス優先度★5つの wp_options を太らせる大きな原因、それが Transient です。

 「名前すら聞いたことがない」という方も多いかもしれませんが、実はあなたのサイトの動作を左右する『隠れた主役』と言っても過言ではありません。

 まずは、このデータが一体何をしているのか、その正体から紐解いていきましょう。

Transient(一時データ)って何?

 簡単に言うと、WordPressが「後でまた使うから、ちょっとここにメモしておこう」と一時的に保存したデータのことです。

  • 良いところ: メモを読み返すだけなので、サイトの表示速度が速くなる。
  • 困ったところ: 本来は期限が来たら消えるはずなのに、消えずにDBに残骸として残り続けることがある。

 これが積み重なると、DBという倉庫が「古いメモ書き」で溢れかえり、逆にサイトの動きを鈍らせてしまいます。

安全なメンテ(SQL):初心者でも「怖くない」理由

 「DBのデータを消すなんて怖い!」と思うかもしれません。でも、Transientに限っては以下の理由で比較的安全です。

  1. 自動で復活する: もし必要なメモを消してしまっても、WPが必要だと思えばその場でまた新しいメモ(Transient)を作り直してくれます。
  2. 設定は消えない: サイトの大事な設定(サイト名など)とは別の「一時的な値」なので、消してもサイトが真っ白になるリスクが非常に低いです。

 だから、DB操作の第一歩としてTransientの掃除から始めてみるのがオススメなんです。

まずは中身を覗いてみよう

 データベースを操作すると言っても、いきなりデータを消すわけではありません。まずは「どんなゴミ(Transient)が溜まっているか」を覗いてみましょう。

SELECT * FROM wp_options WHERE option_name LIKE '_transient_%';

  これをphpMyAdminなどで実行しても、データが表示されるだけで何も壊れません。まずは自分のサイトの「倉庫の隅っこ」を覗いてみるのが、怖さをなくす第一歩です。

初心者向け:phpMyAdminでの操作手順

  1. DB(データベース)を選択: 左側のリストから、自分のサイトのデータベース名をクリックします。
  2. 「SQL」タブをクリック: 上のメニューにある「SQL」という文字を押します。
  3. クエリを入力: 白い大きな入力欄に、先ほどのコードを貼り付けます。
  4. 「実行」ボタンを押す: 右下にある「実行」(または「Go」)ボタンを押せば完了です!

Transientの確認

transient表示

 このように、DB内に残っているTransientが表示されます。これを定期的に削除せずに放置していると、大量に居座り続けている事があります。

Transientの削除をする前の注意事項と実行

  • 万が一のために、実行前には必ずデータベースのバックアップ(UpdraftPlusなどのプラグインでOK)を取っておきましょう。
  • コピーした際、' (シングルクォート)が全角や曲線になっていないか確認してください。真っ直ぐな半角なら正解です。
  • これは『一時的なメモ』を消すだけなので、サイトの設定が消えることはありません。必要なメモは、次にサイトを開いた時にWordPressが勝手に作り直してくれます。

Transientを削除するSQL(掃除用)

DELETE FROM wp_options WHERE option_name LIKE '_transient_%';

 このコードを先程のTransientの確認と同じ手順で入力して実行するだけです。

プラグイン頼みを卒業?リビジョンの「本当の残りカス」をチェック

 WP-Optimizeなどのプラグインでリビジョンを消したから大丈夫!」と思っていませんか?
 実は、プラグインの設定や相性によっては、消したはずのリビジョンがDBの奥底に居座り続けていることがあります。

 自分の目で「本当に空っぽになったか」を確認するのが、真のメンテナンスです。

先ほどのTransientはサイト設定の wp_options にありましたが、このリビジョンは記事本体が保管されている wp_posts というテーブルに書き込まれています。

 まずは、今あなたのサイトにどれくらいのリビジョンが残っているか、このコードで「味見」してみましょう。

※リビジョン確認用のSQL

SELECT * FROM wp_posts WHERE post_type = 'revision';

※リビジョン削除用のSQL
 もし「プラグインで消したはずなのに、まだ数十件、数百件と出てきた!」という場合は、手動で一掃してしまいましょう。

DELETE FROM wp_posts WHERE post_type = 'revision';

 プラグインは便利ですが、万能ではありません。DBを直接覗くことは、いわば『部屋の隅にホコリが残っていないか、自分の目で確認する』ようなものです。

  • リビジョンを消すメリット
    リビジョン(下書きの履歴)が数千件溜まると、記事の保存が遅くなったり、サイト全体の動作に影響したりします。定期的な『断捨離』がサイトを長持ちさせます。

最後に:ゴミを消した後の「隙間」を埋めよう

 データを消すと、DBの中に「空き地(オーバーヘッド)」が残ります。これは本棚から本を抜いた後のような状態です。

  • 理想: phpMyAdminで「テーブルの最適化」を行うのが一番確実。
  • 現実: でも、操作を間違えると怖いですよね。

 初心者の方は、仕上げに「WP-Sweep」や「WP-Optimize」などのプラグインを使って『データベースの最適化』をポチッと押すだけでも十分効果があります。手動で消したゴミの「跡地」も、これで綺麗に整頓されます。

 データベースを触るのは、最初は本当に勇気がいります。でも、中身を知って少しずつ掃除をしてあげると、あなたのサイトはもっと軽やかに、長く応えてくれるようになります。

 大切なのは『バックアップを取ってから、一歩ずつ』
 あなたのブログが、これからも健康に育っていくことを応援しています。

 もう一度言います、大切なのは『バックアップを取ってから、一歩ずつ』