HandleidingːTabel Page

This page is a translated version of the page Manual:Page table and the translation is 100% complete.
Handleiding:Inhoud MediaWiki database lay-out page tabel
MediaWiki-versie:
1.5

De tabel page kan gezien worden als behorend tot de "kern van de wiki". Elke pagina in een MediaWiki installatie heeft hier een record die bepaald wordt op de de titel en die wat essentiële metadata bevat. Het is toegevoegd in r6710, in MediaWiki 1.5.

De tekst van de pagina zelf wordt opgeslagen in de tabel text . Om de tekst van een artikel op te halen, zoekt MediaWiki eerst op page_title in de tabel page. Daarna wordt page_latest gebruikt om in de tabel revision te zoeken naar rev_id , het rev_text_id wordt in dit proces verkregen. De opgehaalde waarde van rev_text_id wordt gebruikt om old_id in de tabel text op te zoeken, dan wordt de tekst opgehaald. Bij het verwijderen van een pagina worden de revisies verplaatst naar de tabel archive .

Als u handmatig een pagina compleet wilt verwijderen uit de database, verwijder dan het pagina record in de tabel page, alle revisies van die pagina in de tabel revision en alle tekstrijen die alleen overeenkomen met de pagina in de table text. Dit kan worden gedaan door het verwijderen van de pagina-rij en het daarna uitvoeren van maintenance/deleteOrphanedRevisions.php. Kijk hieronder hoe dat te doen.

Velden

page_id

Unieke identificatie primaire sleutel. Deze waarde wordt bewaard in bewerkingen en hernoemingen.

Een ID van een pagina verandert niet wanneer de pagina verplaatst wordt, maar het ID kan veranderen wanneer een pagina wordt verwijderd en vervolgens wordt hersteld. Vanaf MediaWiki 1.27, blijft het historische ID in de tabel archive staan en proberen de herstelde pagina's hun oude ID weer te krijgen.

Zie voor meer informatie:

page_namespace

Een pagina-naam wordt in een namespace en een titel opgedeeld. De namespace keys zijn UI-taal-onafhankelijke constanten, gedefinieerd in includes/Defines.php.

Dit veld bevat het nummer van de namespace van de pagina. De waarden variëren van 0 tot 99 voor de core namespaces en van 100 tot 10.000 voor aangepaste namespaces.

page_title

De opgeschoonde paginatitel, zonder de namespace, met een maximum van 255 tekens (binair). Het wordt als tekst opgeslagen, waarbij spaties door underscores worden vervangen. De echte titel wordt in de artikelen getoond, waarbij de underscores (_) in de titel worden omgezet in spaties ( ). Bijvoorbeeld, een pagina met de titel "Talk:Foo Bar" zou "Foo_Bar" in dit veld hebben.

page_is_redirect

De waarde 1 geeft hier aan dat het artikel een doorverwijzing (redirect) is; het is 0 als het geen doorverwijzing is.

page_is_new

Dit veld slaat op of de pagina nieuw is, wat betekent dat deze slechts één revisie heeft of niet is bewerkt sinds die pagina hersteld is, zelfs als er meer dan één revisie is. Als het veld de waarde 1bevat, geeft dit aan dat de pagina nieuw is; anders is het 0. Terugdraai koppelingen worden niet weergegeven als de pagina nieuw is, omdat er niets terug te draaien is.

page_random

Willekeurige decimale waarde, tussen 0 en 1, gebruikt voor Special:Random (zie Manual:Random page voor meer details). Gegenereerd door wfRandom() .

Rond 2005 zorgde een bug ervoor dat deze willekeurige waarden niet-uniform waren. Aangezien het veld is ingesteld bij het maken van pagina's, kunnen wiki's die al lange tijd bestaan nog steeds enkele van deze foutieve waarden hebben. Zie T208909.

page_touched

Deze timestamp wordt bijgewerkt wanneer de pagina zodanig verandert dat deze opnieuw moet worden opgebouw, waardoor caches ongeldig worden. Afgezien van het bewerken, omvat dit wijzigingen van rechten, het maken of verwijderen van gekoppelde pagina's en het veranderen van de in de inhoud opgenomen sjablonen. Doe $dbw->timestamp() bij het maken van de pagina.

page_links_updated

MediaWiki-versie:
1.23

Deze timestamp wordt bijgewerkt wanneer een pagina opnieuw wordt geparseerd en de link volgende tabellen worden bijgewerkt. Dit is handig voor het voorkomen van dubbele dure backlink updates. Stel de standaardwaarde in op NULL wanneer de pagina wordt gemaakt door WikiPage::insertOn() .

page_latest

Dit is een foreign key naar rev_id voor de huidige revisie. Het kan 0 zijn tijdens het maken van pagina's. Het moet linken naar een revisie met een geldige revision.rev_page, anders zal er de foutmelding "De revisie #0 van de pagina met de naam 'Foo' bestaat niet" zijn wanneer men de pagina probeert te bekijken. Kan worden verkregen met WikiPage::getLatest().

page_len

Oncomprimeerde lengte in bytes van de huidige bronstekst van de pagina.

Dit geldt echter niet voor afbeeldingen die nog in deze tabel zijn opgenomen. In plaats daarvan wordt de ongecomprimeerde lengte in bytes van de description voor het bestand gebruikt omdat het laatste in het veld text.old_text staat.

De class Wikipage in includes/WikiPage.php heeft twee methoden, namelijk insertOn() en updateRevisionOn() die verantwoordelijk zijn voor het invullen van deze details.

page_content_model

MediaWiki-versie:
1.21

Inhoudsmodel, zie CONTENT_MODEL_XXX constanten. Vergelijkbaar met revision.rev_content_model.

page_lang

MediaWiki-versie:
1.24

Pagina-inhoud taal. Stel de standaardwaarde van NULL in op het moment van het maken van de pagina.

page_restrictions

MediaWiki-versie:
1.9

Kommagescheiden lijst van rechten-keys die aangeven wie de pagina kan verplaatsen of bewerken. De secties 'edit' en 'move' worden gescheiden door een dubbele punt (bijv. "edit=autoconfirmed,sysop:move=sysop").

MediaWiki-versies:
1.10 – 1.38
Vanaf MediaWiki 1.10, werden de paginabeveiligingsbeheerpunten naar de tabel page_restrictions verplaatst, zodat dit veld leeg zal zijn in databases die worden gegenereerd door meer actuele versies van MediaWiki. (verwijderd in 1.39)

page_counter

MediaWiki-versie:
1.24

Het aantal keren dat de pagina is bekeken. Deze functie is volledig verwijderd in MediaWiki 1.25, na een verzoek om commentaar. Zelfs daarvoor hebben veel sites, waaronder Wikimedia-projecten, het uitgeschakeld om de prestaties te verhogen; zie Manual:$wgDisableCounters voor details.


Schema samenvatting

MediaWiki-versie:
1.36
Gerrit change 690067

DESCRIBE page;

+--------------------+---------------------+------+-----+---------+----------------+
| 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            | YES  |     | NULL    |                |
| 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   |     | NULL    |                |
| page_links_updated | varbinary(14)       | YES  |     | NULL    |                |
| page_latest        | int(10) unsigned    | NO   |     | NULL    |                |
| page_len           | int(10) unsigned    | NO   | MUL | NULL    |                |
| page_content_model | varbinary(32)       | YES  |     | NULL    |                |
| page_lang          | varbinary(35)       | YES  |     | NULL    |                |
+--------------------+---------------------+------+-----+---------+----------------+
MediaWiki-versie:
1.35
Gerrit change 581141

DESCRIBE page;

+--------------------+---------------------+------+-----+----------------+----------------+
| 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            | YES  |     | NULL           |                |
| 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_links_updated | varbinary(14)       | YES  |     | NULL           |                |
| page_latest        | int(10) unsigned    | NO   |     | NULL           |                |
| page_len           | int(10) unsigned    | NO   | MUL | NULL           |                |
| page_content_model | varbinary(32)       | YES  |     | NULL           |                |
| page_lang          | varbinary(35)       | YES  |     | NULL           |                |
+--------------------+---------------------+------+-----+----------------+----------------+
MediaWiki-versies:
1.25 – 1.34
Gerrit change 167655

DESCRIBE page;

+--------------------+---------------------+------+-----+----------------+----------------+
| 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_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_links_updated | varbinary(14)       | YES  |     | NULL           |                |
| page_latest        | int(10) unsigned    | NO   |     | NULL           |                |
| page_len           | int(10) unsigned    | NO   | MUL | NULL           |                |
| page_content_model | varbinary(32)       | YES  |     | NULL           |                |
| page_lang          | varbinary(35)       | YES  |     | NULL           |                |
+--------------------+---------------------+------+-----+----------------+----------------+
MediaWiki-versie:
1.24
Gerrit change 135312

DESCRIBE page;

+--------------------+---------------------+------+-----+---------+----------------+
| 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) binary | 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        | real unsigned       | NO   | MUL | NULL    |                |
| page_touched       | binary(14)          | NO   |     | NULL    |                |
| page_links_updated | varbinary(14)       | YES  |     | NULL    |                |
| page_latest        | int(10) unsigned    | NO   |     | NULL    |                |
| page_len           | int(10) unsigned    | NO   | MUL | NULL    |                |
| page_content_model | varbinary(32)       | YES  |     | NULL    |                |
| page_lang          | varbinary(35)       | YES  |     | NULL    |                |
+--------------------+---------------------+------+-----+---------+----------------+
MediaWiki-versie:
1.23
Gerrit change 101170

DESCRIBE page;

+--------------------+---------------------+------+-----+---------+----------------+
| 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) binary | 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        | real unsigned       | NO   | MUL | NULL    |                |
| page_touched       | binary(14)          | NO   |     | NULL    |                |
| page_links_updated | varbinary(14)       | YES  |     | NULL    |                |
| page_latest        | int(10) unsigned    | NO   |     | NULL    |                |
| page_len           | int(10) unsigned    | NO   | MUL | NULL    |                |
| page_content_model | varbinary(32)       | YES  |     | NULL    |                |
+--------------------+---------------------+------+-----+---------+----------------+
MediaWiki-versies:
1.21 – 1.22

DESCRIBE page;

+--------------------+---------------------+------+-----+---------+----------------+
| 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) binary | 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        | real 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    |                |
| page_content_model | varbinary(32)       | YES  |     | NULL    |                |
+--------------------+---------------------+------+-----+---------+----------------+
MediaWiki-versies:
1.19 – 1.20

DESCRIBE page;

+-------------------+---------------------+------+-----+---------+----------------+
| 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) binary | 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       | real 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    |                |
+-------------------+---------------------+------+-----+---------+----------------+
MediaWiki-versies:
1.10 – 1.18

DESCRIBE page;

+-------------------+---------------------+------+-----+---------+----------------+
| 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) binary | 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       | real 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    |                |
+-------------------+---------------------+------+-----+---------+----------------+
MediaWiki-versies:
1.5 – 1.9

DESCRIBE page;

+-------------------+---------------------+------+-----+---------+----------------+
| 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) binary | 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       | real unsigned       | NO   | MUL | NULL    |                |
| page_touched      | char(14) binary     | NO   |     | NULL    |                |
| page_latest       | int(8) unsigned     | NO   |     | NULL    |                |
| page_len          | int(8) unsigned     | NO   | MUL | NULL    |                |
+-------------------+---------------------+------+-----+---------+----------------+

Indexes

MediaWiki-versie:
1.28

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         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          0 | page_name_title             |            1 | page_namespace   | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          0 | page_name_title             |            2 | page_title       | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          1 | page_random                 |            1 | page_random      | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          1 | page_len                    |            1 | page_len         | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          1 | page_redirect_namespace_len |            1 | page_is_redirect | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          1 | page_redirect_namespace_len |            2 | page_namespace   | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
| page  |          1 | page_redirect_namespace_len |            3 | page_len         | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+-----------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

Voorbeeld MySQL code

Lijstpagina's en relaties met andere essentiële tabellen

Met de volgende code worden de meest recente versies van alle artikelen geselecteerd, ervan uitgaande er geen compressie of externe opslag gebruikt wordt:

SELECT page_id, page_namespace, page_title, page_latest "rev_id", old_text "text"
   FROM page
   INNER JOIN slots on page_latest = slot_revision_id
   INNER JOIN slot_roles on slot_role_id = role_id and role_name = 'main'
   INNER JOIN content on slot_content_id = content_id inner join text on substring( content_address, 4 ) = old_id and left( content_address, 3 ) = "tt:" and old_flags = "utf-8";

Andere belangrijke overwegingen:

  • om pagina's te vinden in namespace 0 voeg p.page_namespace = 0 toe
  • om pagina's te vinden die geen doorverwijzing zijn, voeg p.page_is_redirect = 0 toe

Deze aanvullende statements kunnen worden toegevoegd als voorwaarden aan een Where-uitdrukking of als voorwaarden aan het passende INNER JOIN statement .

Zie ook