WPデータベース解説:管理ツールphpMyAdmin画面の安心・簡単・操作方法

notes-eyecatch 技術備忘録

 データベース(以降DB)は管理ツール「phpMyAdmin」を使って簡単に中を覗けます。
 そしてphpMyAdminにログインすると見知らぬ言葉の多さに「安易に触って下手すると大変なことになるやつ」と悟ります。

 Webサイトを運営して割と早い段階でDB内の掃除・最適化などのフレーズを知ることになります。
 それらはプラグインで事が済むのですが、「残っていたゴミ」という言葉を目にしては気になる人にとっては一大事と感じてしまうかもしれません。

 そこで、phpMyAdmin画面のこれさえ知っておけば安心・簡単をテーマに話を進めたいと思います。

 ※DBに触れる時は必ずバックアップを取ってからにしてください。

WPサイトをメンテする為のphpMyAdmin画面指南

 ConoHaサーバー経由の実際のphpMyAdmin画面です(ぼかしで隠れてますが、左側のリストからデータベース名をクリックした状態です。)

 まず画面上に連なるタブを左から順に説明していきます。
 その後に触って良いタブ、触れるな危険タブを選別します。

phpMyAdmin画面の主要なタブの役割

  • 構造
    DB内のテーブルが表示されている画面です。DBの中にどのような「テーブル(データの表)」があるか、その一覧とデータの量(行数)などを確認できます。
  • SQL
    コンピュータ用の命令文(SQL文)を直接入力して、データの検索や更新などの高度な操作を行う場所です。
  • 検索
    特定のキーワードを指定して、DB内の全テーブルからデータを探し出すことができます。
  • クエリ
    SQLの知識がなくても、条件を選択するだけで複雑なデータ抽出ができる補助機能です。
  • エクスポート / インポート
    DB全体のバックアップを取ったり(エクスポート)、保存しておいたデータを復元したり(インポート)する際に使います。
  • 操作
    テーブルの名前を変更したり、データをすべて消去(空にする)したりといった、テーブルそのものに対する設定変更を行います。
  • ルーチン
    よく使う複雑な処理(SQL命令のセット)を、あらかじめDB側に保存しておく機能です。「ストアドプロシージャ」や「ファンクション」と呼ばれます。
  • イベント
    「決まった日時」や「一定の間隔(毎日、1時間おきなど)」で、自動的に処理を実行させるスケジューラーです。
  • トリガ
    特定のテーブルに対して「データが追加された時」や「書き換えられた時」など、何かの動きをきっかけ(引き金)にして、別の処理を自動で発動させる機能です。
  • デザイナ
    テーブル同士がどのように関連し合っているかを、図(リレーション図)として視覚的に表示します。

厳選:これだけ触って良い4つのタブ&使いみち

  1. 構造
    DBの中に入っているテーブルを表示する。記事やユーザー情報などの中身を確認する場所。
    ※WPのテーブルとはwp_postsやwp_options、wp_postmetaなどを指しています。
  2. SQL
    「増えすぎたリビジョンを一括削除する」「溜まったTransient(一時データ)を掃除する」など、コピペした命令文を貼り付けて実行するだけの場所。
  3. エクスポート(バックアップ)
    バックアッププラグインのUpdraftPlusが動かない時や、サーバー移転など、「念のため手元にデータを落としておきたい」時の保険。
  4. インポート(復元)
    バックアップしたファイルを読み込んで、一瞬で元の状態に戻すためのレスキュー用。

UpdraftPlusがあれば基本、エクスポート / インポートは使わない。
プラグインがなにかしらの理由で動かない緊急事態のときに、この場所を知っていると命拾いするかもしれませんね。

その他は使わない&触れなくて良い

  • 特にルーチン・イベント・トリガは無視!
    これはシステム開発者が使う高度な自動化スイッチ。ブログ運営でここを触ることはまずありません。見えていてもスルーしてください。

WP:DBテーブルの中身

 構造タブの選択時に表示されているwp_から始まるものをテーブルと言います。そして各テーブルには投稿やカテゴリー、コメントなどのデータが詰まっています。
 構造タブの画面は、データが入ったテーブルたちの目次を見ている状態とも言えるでしょう。

 そして、テーブルの中のデータ1行分をレコードと言います。


 この画像は wp_options テーブルの中身を表示している画面です(テーブル名をクリックすると『表示』タブに変わり、この画面になります)
 この1行1行がレコードです。例えば『1ページに表示する投稿数』といった細かい設定がテーブルに保存されています。

 例えば一番下の rss_use_excerpt というレコードの値を『1』から『0』に書き換えると、それだけでサイトの設定が変わってしまいます。だからこそ、バックアップ(エクスポート)なしで触るのは危険なのです。

簡単に編集・削除ができる怖さ

 画像にある赤い「削除」ボタンや「編集」リンクは、まさにDBを直接書き換えるスイッチです。

  • 不用意に『削除』を押すと、その設定が消えてサイトが真っ白になることもある。

ここまでのまとめ
「構造」タブの一覧にある「削除(DROP)」「空にする(TRUNCATE)」は、一瞬でテーブルを消し去るボタンです。
やりがちなミス: 「これ、いらないプラグインのデータかな?」と勘違いして消してしまう。
対策: 「wp_」から始まる標準的なテーブルは、名前が分からなくても絶対に消さないこと!

初心者でも使えるSQLメンテナンスコード

 DBには投稿や固定ページの編集履歴が溜まっていきます。Webサイトで使われる期限付きの一時保存データも残ることが多々あります。記事やコメントを削除してもゴミ箱の中を空にしていない場合なども、DBの中に溜まっていきます。

 これらを一括りにゴミと呼び、そのゴミデータをphpMyAdmin内で削除する事でWebサイトの動作が快適になります。
 この一連の作業はプラグインでも出来るのですが、プラグインが完璧にメンテナンスを実行しているのか確認する方法があります。

SQLにてクエリを実行

SQL画面

 画像はSQLのタブ画面です。
 ここにクエリと呼ばれる命令文を入力します。入力した後は実行を押すだけです。

初心者にも簡単に実行できるメンテナンス用クエリ

 ここからの内容は以前投稿した「WPデータベース解説:標準テーブルの役割と怖くないTransientの安全なメンテ方法」でも紹介しています。
 今回はクエリをすぐコピペできるように簡潔に整頓しています。

 ※DBに触れる時は必ずバックアップを取ってからにしてください。

※自分のデータベースのテーブル名が wp_ 以外で始まっている場合は、そこを書き換えてください

 リビジョン確認用クエリ

SELECT * FROM wp_posts WHERE post_type = 'revision';

 リビジョン削除用クエリ

DELETE FROM wp_posts WHERE post_type = 'revision';

 Transient確認用クエリ

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

 Transient削除用クエリ

DELETE FROM wp_options WHERE option_name LIKE '_transient_%';

 ゴミ箱確認用クエリ

SELECT * FROM wp_posts WHERE post_status = 'trash';

 ゴミ箱削除用クエリ

DELETE FROM wp_posts WHERE post_status = 'trash';

phpMyAdmin内でDBを最適化

 くどいようですが、DBの何かしらの操作を実行する前に必ずバックアックを取ってください。

 クエリの実行で掃除をした後は最適化が重要です。
 レコードを削除した穴を最適化で埋める必要があるからです。

 イメージとしては、エクセルなどで行を削除した後の空白を詰める作業です。

テーブル最適化

 構造タブのテーブルが表示されている画面です。 テーブルの下の「すべてチェックする」を選択してください。

 その後は画像の様にプルダウンで「テーブルを最適化する」を選択します。

 ここで注意するのは、簡単にテーブルの削除を選択できる事です。決定する前に確認画面は出ますが、慣れてくると操作に余裕が出てくるので、ここでは慎重に操作してほしいところです。

 この操作に不安を覚えるようならプラグインでの最適化を推奨します。

なぜ全てのテーブルを最適化するのか

 ここで紹介したのはwp_posts / wp_optionsの中の掃除です。

なぜ「全部」でいいの?

  • 一瞬で終わるから
    WordPressのDB規模なら、全部選んで「最適化」ボタンを押しても数秒で終わります。一つひとつ選ぶ手間の方が大変です。
  • 他のテーブルも「整理整頓」されるから
    ゴミ掃除(DELETE)をしていないテーブルでも、データの並び順が整理されたり、インデックス(索引)が貼り直されたりして、ほんの少しだけ動作がスムーズになる効果があります。

 もちろん、掃除をしたテーブルだけの最適化でも問題ありません。

  • wp_posts(リビジョンを消した)
  • wp_options(Transientを消した)

 これらは目に見えて「空きスペース」ができるので、最適化の効果が大きいです。
 しかし、しばらくテーブル全体を最適化をしてないのなら是非全てを最適化して整った状態にしてあげてください。

いろいろ説明しましたが、最後にこれだけは覚えておいてください。
『作業前にエクスポート(バックアップ)さえ取っておけば、phpMyAdminで何を失敗しても、1分で元の状態に戻せます』
これが、DB操作の唯一にして最強の安全策です。

全部覚えなくて大丈夫。今回使った『4つのタブ』だけで運営は完璧

 基本的にこれまでの事が最初に気にするべき所の解消方法となります。
 リビジョンなんかは本当に放っておくと溜まっていきます。

 ミコトホドではプラグインで掃除した後でも、実際にDBでゴミ確認を推奨しています。
 毎回では無くても良いです。少しWebサイトの動作に「ん?」と首を傾げるような事があれば、確認をしてみてください。

 意外とゴミが残っていて貴方のサイトに影響を与えているかもしれませんね。

コメント