Old テーブル
Other languages: English...Translate this page! 英語版がオリジナルです。
<smal>< メディアウィキアーキテクチャ < データベースレイアウト
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 | | | | | +-------------------+---------------------+------+-----+---------+----------------+