Manual:Pagelinks table

Tracks all internal links in the Wiki. Each entry contains the source page's ID, and the namespace (number) and article name (in text) that is being linked to 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_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.

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 |         |       |