Manual:Page table/ja

ページテーブル は「wikiの核」と言い表せます. MediaWikiのあらゆるページは、それを識別するエントリをタイトルが持ち、主要なメタデータを格納しています. これは MediaWiki 1.5 r6710 で初めて導入されました.

ページ自体のテキストは テキストテーブル で保管されます. まず、記事のテキストを読み出すために、MediaWikiはこのテーブルで最初に page_title を検索します. それから、 履歴テーブルの rev_id を検索するためにpage_latest が使われ、そのプロセスの中でrev_text_id が取得されます. rev_text_id で取得された値はテキストを読み出すテーブルで old_id を検索するために使用されます. ページが削除されると、そのページの版は 過去ログテーブルに移動されます.

データベースから手動で完全にページを削除する場合、ページテーブル内のページのエントリのみならず、履歴ビジョンのそのページの全履歴や、テキストテーブル内のページにある対応するテキストの全レコードを削除する必要があることに気をつけてください. これはページのレコードを削除し、 maintenance/deleteOrphanedRevisions.php を起動することにより行なえます. このページの下部にあるDeleting pages with their relationships in text and revision tablesもご覧ください.

page_id
一意に識別する為の主キー. この値は編集や移動があっても変動しません. 例えば、このページで言うと page_id は 10501 になります. このフィールドは や 等を用いてアクセスできます.

MediaWiki 1.11 以降では、この値を保持する為に過去ログテーブルにも似たフィールドが存在します. 但し、これはページの復帰には用いられません. ページ復帰のインターフェイスは管理者によって使用されます.

page_namespace
ページ名は、名前空間とタイトルで構成されます. 名前空間のキーは includes/Defines.php で定義されたユーザーインターフェイス言語に依存しない定数です.

このフィールドはページの名前空間の番号を格納しています. 値は 0 から 15 までが標準名前空間で、100 から 255 までがカスタム名前空間の範囲です.

page_title
The sanitized page title, without the title of its namespace with a maximum of 255 characters (binary), e.g. "[255 chars]" or "Talk:[255 chars]" or "Category discussion:[255 chars here]". It is stored as text, with spaces replaced by underscores. The real title shown in articles is just this title with underscores (_) converted to spaces.

page_restrictions
誰がページの移動または編集ができるのかを示す、カンマ区切りのパーミッションキーのセット. Edit and move sections are separated by a colon (e.g., "edit=autoconfirmed,sysop:move=sysop").

MediaWiki1.10 を発端に、ページ保護のコントロールは Page restrictions テーブル に移されました. so this field will be empty in databases generated by more current versions of MediaWiki.

page_counter
このページが見られた回数. ここで留意すべきなのは、このフィールドが増加するいくつかのサイト ( 例えば Wikimedia サイト )は、パフォーマンスを増やすようために無効にしていることです. - $wgDisableCounters グローバル変数をご覧ください.

page_is_redirect
値 1 は、ここに記事がリダイレクトであることを示しています. それ以外の場合は、0 です.

page_is_new
このフィールドは、ページが新規のエントリかそうでないかを保管します. ; フィールドが 1 ほ含む場合、それはページがただ１回だけの編集の新しいエントリであることを示します. それ以外の場合は、0 です.

page_random
ランダムな 0 と 1 の間の小数値で、特別:おまかせ表示のために使用されます. (詳細は Manual:Random page を参照)

page_touched
このタイムスタンプは、ページがキャッシュを無効にして、再レンダリングを要求し、ある意味で変化するときは、いつでも更新されます. 編集とは別に、これはパーミッションの変更、リンクされたページの生成あるいは削除、使用しているテンプレートの修正を含みます.

page_links_updated
This timestamp is updated whenever a page is re-parsed and it has all the link tracking tables updated for it. This is useful for de-duplicating expensive backlink update jobs.

page_latest
これは現在のリビジョンのための rev_id への外部キーです. それはページ生成の間は 0 であるかもしれません.

page_len
ページの現在のソーステキストの圧縮していないバイト単位での長さ.

page_content_model
Content model, see CONTENT_MODEL_XXX constants. Comparable to.

page_lang
Page content language.

スキーマ概要
MariaDB> describe page; ++-+--+-+++ ++-+--+-+++ ++-+--+-+++ 13 rows in set (0.00 sec)
 * Field             | Type                | Null | Key | Default        | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * page_namespace    | int(11)             | NO   | MUL | NULL           |                |
 * page_title        | varbinary(255)      | NO   |     | NULL           |                |
 * page_restrictions | tinyblob            | NO   |     | NULL           |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0              |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0              |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0              |                |
 * page_random       | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched      | binary(14)          | NO   |     |                |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL           |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL           |                |
 * page_links_updated | varbinary(14)      | YES  |     | NULL           |                |

mysql> describe page; ++-+--+-+++ ++-+--+-+++ ++-+--+-+++ 12 rows in set (0.00 sec)
 * Field             | Type                | Null | Key | Default        | Extra          |
 * page_id           | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * page_namespace    | int(11)             | NO   | MUL | NULL           |                |
 * page_title        | varbinary(255)      | NO   |     | NULL           |                |
 * page_restrictions | tinyblob            | NO   |     | NULL           |                |
 * page_counter      | bigint(20) unsigned | NO   |     | 0              |                |
 * page_is_redirect  | tinyint(3) unsigned | NO   | MUL | 0              |                |
 * page_is_new       | tinyint(3) unsigned | NO   |     | 0              |                |
 * page_random       | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched      | binary(14)          | NO   |     |                |                |
 * page_latest       | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len          | int(10) unsigned    | NO   | MUL | NULL           |                |
 * page_content_model | varbinary(32)      | YES  |     | NULL           |                |

DESCRIBE page; により MediaWiki 1.19 においては下記の結果を示します: +---+-+--+-+++ +---+-+--+-+++ +---+-+--+-+++
 * Field            | Type                | Null | Key | Default        | Extra          |
 * page_id          | int(10) unsigned    | NO   | PRI | NULL           | auto_increment |
 * page_namespace   | int(11)             | NO   | MUL | NULL           |                |
 * page_title       | varbinary(255)      | NO   |     | NULL           |                |
 * page_restrictions | tinyblob           | NO   |     | NULL           |                |
 * page_counter     | bigint(20) unsigned | NO   |     | 0              |                |
 * page_is_redirect | tinyint(3) unsigned | NO   | MUL | 0              |                |
 * page_is_new      | tinyint(3) unsigned | NO   |     | 0              |                |
 * page_random      | double unsigned     | NO   | MUL | NULL           |                |
 * page_touched     | binary(14)          | NO   |     |                |                |
 * page_latest      | int(10) unsigned    | NO   |     | NULL           |                |
 * page_len         | int(10) unsigned    | NO   | MUL | NULL           |                |

DESCRIBE page; により MediaWiki 1.12 においては下記の結果を示します: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field                | Type                | Null | Key | Default | Extra          |
 * page_id              | int(8) unsigned     | NO   | PRI | NULL    | auto_increment |
 * page_namespace       | int(11)             | NO   | MUL | NULL    |                |
 * page_title           | varchar(255)        | NO   |     | NULL    |                |
 * page_restrictions    | tinyblob            | NO   |     | NULL    |                |
 * page_counter         | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect     | tinyint(1) unsigned | NO   |     | 0       |                |
 * page_is_new          | tinyint(1) unsigned | NO   |     | 0       |                |
 * page_random          | double unsigned     | NO   | MUL | NULL    |                |
 * page_touched         | char(14)            | NO   |     | NULL    |                |
 * page_latest          | int(8) unsigned     | NO   |     | NULL    |                |
 * page_len             | int(8) unsigned     | NO   | MUL | NULL    |                |

DESCRIBE page; により MediaWiki 1.11 においては下記の結果を示します: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field                | Type                | Null | Key | Default | Extra          |
 * page_id              | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |
 * page_namespace       | int(11)             | NO   | MUL | NULL    |                |
 * page_title           | varchar(255)        | NO   |     | NULL    |                |
 * page_restrictions    | tinyblob            | NO   |     | NULL    |                |
 * page_counter         | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect     | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_is_new          | tinyint(3) unsigned | NO   |     | 0       |                |
 * page_random          | double unsigned     | NO   | MUL | NULL    |                |
 * page_touched         | binary(14)          | NO   |     | NULL    |                |
 * page_latest          | int(10) unsigned    | NO   |     | NULL    |                |
 * page_len             | int(10) unsigned    | NO   | MUL | NULL    |                |

DESCRIBE page;</tt> により MediaWiki 1.5 から 1.10 においては下記の結果を示します: +---+-+--+-+-++ +---+-+--+-+-++ +---+-+--+-+-++
 * Field                | Type                | Null | Key | Default | Extra          |
 * page_id              | int(8) unsigned     | NO   | PRI | NULL    | auto_increment |
 * page_namespace       | int(11)             | NO   | MUL | NULL    |                |
 * page_title           | varchar(255)        | NO   |     | NULL    |                |
 * page_restrictions    | tinyblob            | NO   |     | NULL    |                |
 * page_counter         | bigint(20) unsigned | NO   |     | 0       |                |
 * page_is_redirect     | tinyint(1) unsigned | NO   |     | 0       |                |
 * page_is_new          | tinyint(1) unsigned | NO   |     | 0       |                |
 * page_random          | double unsigned     | NO   | MUL | NULL    |                |
 * page_touched         | char(14)            | NO   |     | NULL    |                |
 * page_latest          | int(8) unsigned     | NO   |     | NULL    |                |
 * page_len             | int(8) unsigned     | NO   | MUL | NULL    |                |

Indices
mysql> show index in page; +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+ +---++-+--+--+---+-+--++--++-+---+
 * Table | Non_unique | Key_name                   | Seq_in_index | Column_name      | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
 * page |          0 | PRIMARY                     |            1 | page_id          | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | name_title                  |            1 | page_namespace   | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          0 | name_title                  |            2 | page_title       | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_random                 |            1 | page_random      | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_len                    |            1 | page_len         | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            1 | page_is_redirect | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            2 | page_namespace   | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |
 * page |          1 | page_redirect_namespace_len |            3 | page_len         | A         |           1 |     NULL | NULL   |      | BTREE      |         |               |

Listing pages and relations with other essential tables
The following code will select the most recent versions of all articles from core tables: [page, revision, text]:

その他、考慮すべき重要な事項:
 * 復元されたページを見つけるには、"r.rev_deleted = 0" を追加
 * 名前空間 0 内のページを見つけるには、"p.page_namespace = 0" を追加
 * リダイレクト (転送ページ) 以外のページを見つけるには、"p.page_is_redirect = 0" を追加

These additional statements can be added either as conditions to a Where statement or as conditions on the appropriate Inner Join statement.

Deleting pages with their relationships in text and revision tables
The following shows a steps to run to help you delete pages and their children from the main pages in the page, revision and text tables.

Listing all related table keys

Deleting from database the rows

You should have a result set like this

Replace the concatenated id in the following query

After, you can do some cleanup using this maintenance script:

関連項目

 * API:Database field and API property associations