Manual:Pagelinks table

Tracks all internal links in the Wiki. Each entry contains the source page's ID and namespace (number), and the article name (in text) and namespace (number) that is being linked to from within that source page. There may be many instances of the source page's ID, as many as the internal links within it, but there can be only one entry per internal link for any page ID (or MySQL will yell out a fatal error).

Note that the target page may or may not exist, and due to renames and deletions may refer to different page records as time goes by.

The table was introduced in version 1.5. It is the result of merging the links table and the brokenlinks table of version 1.4. Regenerating the pagelinks table always is possible using the rebuildall.php maintenance script.

pl_from
Key to the page_id of the page containing the link.

pl_from_namespace
page_namespace of the page containing the link.

pl_namespace
Key to page_namespace of the target page. The target page may or may not exist, and due to renames and deletions may refer to different page records as time goes by.

pl_title
Key to page_title of the target page. The target page may or may not exist, and due to renames and deletions may refer to different page records as time goes by. Spaces are converted to underscores, and the first letter is automatically capitalized. So for example, a link to foo bar would have a pl_title of "Foo_bar".

Schema
mysql> explain pagelinks; +---+--+--+-+-+---+ +---+--+--+-+-+---+ +---+--+--+-+-+---+
 * Field            | Type             | Null | Key | Default | Extra |
 * pl_from          | int(10) unsigned | NO   | PRI | 0       |       |
 * pl_from_namespace | int(11)         | NO   |     | 0       |       |
 * pl_namespace     | int(11)          | NO   | PRI | 0       |       |
 * pl_title         | varbinary(255)   | NO   | PRI |         |       |

mysql> describe pagelinks; +--+--+--+-+-+---+ +--+--+--+-+-+---+ +--+--+--+-+-+---+
 * Field       | Type             | Null | Key | Default | Extra |
 * pl_from     | int(10) unsigned | NO   | PRI | 0       |       |
 * pl_namespace | int(11)         | NO   | PRI | 0       |       |
 * pl_title    | varbinary(255)   | NO   | PRI |         |       |

DESCRIBE pagelinks; in version 1.18 gives the following: +--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field       | Type            | Null | Key | Default | Extra |
 * pl_from     | int(8) unsigned | NO   |     | 0       |       |
 * pl_namespace | int(11)        | NO   |     | 0       |       |
 * pl_title    | varbinary(255)  | NO   |     |         |       |

+--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field       | Type            | Null | Key | Default | Extra |
 * pl_from     | int(8) unsigned | NO   | PRI | 0       |       |
 * pl_namespace | int(11)        | NO   | PRI | 0       |       |
 * pl_title    | varchar(255)    | NO   | PRI | NULL    |       |

+--+--+--+-+-+---+ +--+--+--+-+-+---+ +--+--+--+-+-+---+
 * Field       | Type             | Null | Key | Default | Extra |
 * pl_from     | int(10) unsigned | NO   | PRI | 0       |       |
 * pl_namespace | int(11)         | NO   | PRI | 0       |       |
 * pl_title    | varchar(255)     | NO   | PRI |         |       |

+--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field       | Type            | Null | Key | Default | Extra |
 * pl_from     | int(8) unsigned | NO   | PRI | 0       |       |
 * pl_namespace | int(11)        | NO   | PRI | 0       |       |
 * pl_title    | varchar(255)    | NO   | PRI | NULL    |       |

+--+-+--+-+-+---+ +--+-+--+-+-+---+ +--+-+--+-+-+---+
 * Field       | Type            | Null | Key | Default | Extra |
 * pl_from     | int(8) unsigned | NO   | PRI | 0       |       |
 * pl_namespace | int(11)        | NO   | PRI | 0       |       |
 * pl_title    | varchar(255)    | NO   | PRI |         |       |