Manual:Database layout

<- MediaWiki architecture

Most data for the wiki is stored in a database. See MySQL config for setup info.

(Some data lives only in the filesystem, other data is just cached there. Data may also be cached in memcached, but lives permanently in the database.)

See in the source: docs/schema.doc and maintenance/tables.sql

Currently we have the following tables:
 * archive table
 * brokenlinks table tracks "broken" links, those that go to pages that don't yet exist;
 * cur table
 * image table
 * imagelinks table tracks usage of images in wikipages.
 * ipblocks table
 * links table tracks all "live" links from wikipages to other wikipages that do exist
 * math table
 * old table
 * oldimage table
 * recentchanges table
 * searchindex table
 * site_stats table
 * user table
 * user_newtalk table
 * watchlist table

Explanation of the link tables
There are presently three link tables: links, brokenlinks and imagelinks. There are a couple of uses for these tables:
 * enables "What links here" and "Related changes" to work, looking at incoming or outgoing links
 * provides the list of pages that use an image shown on an image's description page
 * allows making reports of pages that aren't linked (Orphans, Unused images) or are linked to but don't exist (Most wanted pages)
 * slightly speed up page rendering by avoiding individual checks for the existence of each linked page to determine how to render its  link

(The latest software also adds a 'linkscc' table which caches data from the other three tables. This is used only for speeding rendering.)

If you import data to the cur table and don't rebuild the links, you won't be able to use "What links here", "Related changes", "Orphans", etc. If you don't want to, well I suppose that's okay... (Brion Vibber)

See Also


 * Experimental new database schema 22:55, 24 Jul 2003
 * Proposed Database Schema Changes 18:19, 23 Dec 2003
 * en:Wikipedia:Database queries
 * nl:Wikipedia:SQL opdrachten
 * Database layout
 * Documentation: Developer's Guide