Manual:Categorylinks table

From MediaWiki.org
(Redirected from Categorylinks table)
Jump to: navigation, search
Manual:Contents MediaWiki database layout Categorylinks table


The categorylinks table stores entries on a page of the type [[category:abc]], which places the page into the category "abc" (for which an associated page may or may not exist). Links of the form [[:category:abc]] are not stored in categorylinks, but are handled as normal links. The editable parts of category pages are stored like other pages.

[edit] Fields

cl_from 
Stores the page.page_id of the article where the link was placed.
cl_to 
Stores the name (excluding namespace prefix) of the desired category. Spaces are replaced by underscores (_)
cl_sortkey 
Stores the title by which the page should be sorted in a category list. This is the binary sortkey, that depending on $wgCategoryCollation may or may not be readable by a human (but should sort in correct order when comparing as a byte string)
cl_timestamp 
Stores the time at which that link was last updated in the table.
cl_sortkey_prefix 
This is either the empty string if a page is using the default sortkey (aka the sortkey is unspecified). Otherwise it is the human readable version of cl_sortkey. Needed mostly so that cl_sortkey can be easily updated in certain situations without re-parsing the entire page.
cl_collation 
What collation is in use. Used so that if the collation changes, the updateCollation.php script knows what rows need to be fixed in db.
cl_type 
What type of article is this (file, subcategory (subcat) or normal page). Used so that the different sections on a category page can be paged independantly in an efficient manner.

There are four indexes which help improve performance:

  • The concatenation of cl_from and cl_to (for when an article is edited)
  • The concatenation of cl_to, cl_type, cl_sortkey, and cl_from (for showing articles in order)
  • The concatenation of cl_to and cl_timestamp
  • cl_collation

[edit] Versions

MediaWiki version: 1.17
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+
| Field             | Type                         | Null | Key | Default           | Extra                       |
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+
| cl_from           | int(10) unsigned             | NO   | PRI | 0                 |                             |
| cl_to             | varbinary(255)               | NO   | PRI |                   |                             |
| cl_sortkey        | varbinary(230)               | NO   |     |                   |                             |
| cl_timestamp      | timestamp                    | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| cl_sortkey_prefix | varbinary(255)               | NO   |     |                   |                             |
| cl_collation      | tinyint(4)                   | NO   | MUL | 0                 |                             |
| cl_type           | enum('page','subcat','file') | NO   |     | page              |                             |
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+
Warning Warning: Starting with version 1.17, the index on (cl_to, cl_sortkey) is no more, and replaced with one on (cl_to, cl_type, cl_sortkey, cl_from). Extensions that directly query the categorylinks table to get a list of pages in sorted order need to make sure they are using the new index, or the query may become very inefficient
MediaWiki versions: 1.10 – 1.15
+--------------+-----------------+------+-----+-------------------+-------+
| Field        | Type            | Null | Key | Default           | Extra |
+--------------+-----------------+------+-----+-------------------+-------+
| cl_from      | int(10) unsigned| NO   | PRI | 0                 |       |
| cl_to        | varchar(255)    | NO   | PRI | NULL              |       |
| cl_sortkey   | varchar(70)     | NO   |     | NULL              |       |
| cl_timestamp | timestamp       | YES  |     | CURRENT_TIMESTAMP |       |
+--------------+-----------------+------+-----+-------------------+-------+
MediaWiki versions: 1.5 – 1.9
+--------------+-----------------+------+-----+-------------------+-------+
| Field        | Type            | Null | Key | Default           | Extra |
+--------------+-----------------+------+-----+-------------------+-------+
| cl_from      | int(8) unsigned | NO   | PRI | 0                 |       |
| cl_to        | varchar(255)    | NO   | PRI | NULL              |       |
| cl_sortkey   | varchar(86)     | NO   |     | NULL              |       |
| cl_timestamp | timestamp       | YES  |     | CURRENT_TIMESTAMP |       |
+--------------+-----------------+------+-----+-------------------+-------+
MediaWiki version: 1.3
+--------------+-----------------+------+-----+-------------------+-------+
| Field        | Type            | Null | Key | Default           | Extra |
+--------------+-----------------+------+-----+-------------------+-------+
| cl_from      | int(8) unsigned | NO   | PRI | 0                 |       |
| cl_to        | varchar(255)    | NO   | PRI | NULL              |       |
| cl_sortkey   | varchar(255)    | NO   |     | NULL              |       |
| cl_timestamp | timestamp       | YES  |     | CURRENT_TIMESTAMP |       |
+--------------+-----------------+------+-----+-------------------+-------+
Language: English  • 日本語 • Polski
Personal tools
Namespaces
Variants
Actions
Site
Support
Download
Development
Communication
Print/export
Toolbox