[WordPress] postmetaテーブルの_edit_lastと_edit_lock
スポンサーリンク
WordPressのデータベースがどういう構造をしているか調べていて、postmetaテーブルのmeta_keyカラムにある“_edit_last”と“_edit_lock”がどう機能しているか分からなかったので調べた。
データは以下の形式で保存されている。
meta_id | post_id | meta_key | meta_value 0 | 1 | _edit_last | 1 1 | 1 | _edit_lock| 1317131082
meta_idはpostmetaテーブルのprimaryキーで自動的に割り振られるもの。post_idはどのポストのデータかを指す。_edit_lastのmeta_valueはユーザーIDで、_edit_lockはUNIXタイムスタンプのようだ。字義通りなら最終更新と編集不可に関するデータなのだろうが、なぜこの2つのデータが、全てのポストに用意されているか一見分かからない。
というのは、投稿ユーザーと最終編集日時に関するデータならpostsテーブルに用意されているからだ。投稿者のユーザーIDはpostsテーブルのpost_authorに、最終更新日のデータはpost_modifiedとpost_modified_gmtに書きこまれている。
ではpostmetaテーブルの_edit_lastと_edit_lockは何のためのデータなのか、というとどうやら複数のユーザーが同時に同じエントリを編集するのを防ぐためのものらしい。
WordPressフォーラムで分かりやすく説明されていた。When you edit a post, old or new, WordPress creates 2 records in post meta table for warn other editors that someone is in edit.
So, these records can remain on server for a very long time. When a Blog has many posts, for example 100, in post meta table you can found 200 “dead” records.
Delete these records is not dangerous.
ようするに、投稿したエントリの編集を始めると、他のユーザーが同じエントリの編集を始めたときそれに対して警告するため、metatableに_edit_lastと_edit_lockというデータが用意される。そしてこのデータは長い間残ってしまう。自動的に削除されるかどうかは不明。私のWordPressに残っている一番古いデータは2009年7月のものだった。だから、少なくとも2年が経過しても削除されずに蓄積されていくようだ。つまり、投稿した記事が100あれば不必要なデータが200個存在する。
ということで、postmetaテーブルのmeta_valueが_edit_lastと_edit_lockになっているレコードは削除しても問題ない。あったからといってWordPressの動作が遅くなることはないが、少しでもデータを軽くしたいなら消去するのが良いだろう。
スポンサーリンク
WordPressカテゴリーの投稿
- [WordPress] 記事が更新された回数を取得する
- [WordPress] ダッシュボードのウィジェットを表示オプションを使わずに非表示化する
- [WordPress] 関連記事をカテゴリーに基づきアイキャッチ画像つきで表示
- [WordPress] バックアッププラグインの特徴と機能比較
- [WordPress] タグ版wp_list_categories
- [WordPress] have_comments()がFALSEを返しコメントが表示されない現象
- [WordPress] 個別記事ページでカテゴリーを表示するときの目的別の方法
- [PHP] 文字長がnバイト以下になるまで末尾の文字を1字づつカット
- [WordPress] wp_insert_post()でhtmlタグが除去されるのを防ぐ
- [WordPress] カテゴリー・タグ・カスタムタクソノミーを外部から登録・編集する