Old テーブル

From Meta, a Wikimedia project coordination wiki
This is an archived version of this page, as edited by Suisui (talk | contribs) at 03:11, 30 September 2004. It may differ significantly from the current version.

Other languages: English...Translate this page! 英語版がオリジナルです。

<smal>< Help:Mediawikiアーキテクチャ < Help:データベースレイアウト

old table(old テーブル)は各ページの過去の版を保存するためのテーブルです。ほとんどのフィールドは cur テーブルのフィールドと一致します。

古い版のテキストは old_flag フィールドが示した位置に gzip で圧縮して保存されています。圧縮には PHP関数の gzdeflate を使用しています。そのため、PHPで読み出す場合以外には gzip ヘッダがなく、ウィンドウサイズが -1 に指定されている事に注意する必要があります。

old_id は各版に付けられた固有のインデックスであり、いくつか注意点が有ります。

  • cur テーブルは常に最新の版を old テーブルとは別に保存しているため、old テーブルの id は cur により新しい版が保存されるまで生成されません。
  • archive テーブルはページの ID を保存しないため、一度削除し、restor したページのID は異なったものとなります。(削除したページの old_id が再利用される事は有りません。)
  • old_id は必ずしも作成順に付けられるとは限らず、ページの版間での差分を作成するためだけに使用されます。

old_timestamp についても個別に作成されるものであるため、あるページの履歴の中で必ずしも固有の値を持つとは限りません。

oldテーブルの構造

"DESCRIBE old" の情報:

+-------------------+---------------------+------+-----+---------+----------------+
| Field             | Type                | Null | Key | Default | Extra          |
+-------------------+---------------------+------+-----+---------+----------------+
| old_id            | int(8) unsigned     |      | PRI | NULL    | auto_increment |
| old_namespace     | tinyint(2) unsigned |      |     | 0       |                |
| old_title         | varchar(255) binary |      |     |         |                |
| old_text          | mediumtext          |      |     |         |                |
| old_comment       | tinyblob            |      |     |         |                |
| old_user          | int(5) unsigned     |      |     | 0       |                |
| old_user_text     | varchar(255) binary |      |     |         |                |
| old_timestamp     | varchar(14) binary  |      |     |         |                |
| old_minor_edit    | tinyint(1)          |      |     | 0       |                |
| old_flags         | tinyblob            |      |     |         |                |
| inverse_timestamp | varchar(14) binary  |      |     |         |                |
+-------------------+---------------------+------+-----+---------+----------------+