Manual:Suitability of tables for sharing

From Linux Web Expert

Revision as of 06:17, 18 March 2024 by imported>Shirayuki (Marked this version for translation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Some tables lend themselves better than others to being shared using $wgSharedTables .

Table Can be shared? Comments
archive <translate> No</translate> ar_rev_id collisions
category <translate> No</translate> cat_title collisions
categorylinks <translate> No</translate> cl_from collisions
change_tag <translate> No</translate> ct_log_id collisions
comment <translate> No</translate> Houses comments linked to multiple unshareable tables.
externallinks <translate> No</translate> el_from collisions
filearchive <translate> No</translate> ?
image <translate> No</translate> To have a shared media repository, see $wgForeignFileRepos
imagelinks <translate> No</translate> il_from collisions
interwiki <translate> Yes</translate> The interwiki table contains mostly static data; it may be useful to share if you have many custom interwikis.
ipblocks <translate> Yes</translate> By sharing the ipblocks table, you can have "global blocks" so that a block on one wiki will block the user or IP on all other wikis using the shared database. There can be some minor issues when sharing the ipblocks table. Viz., the ipb_reason field is set as the "reason" on Special:Block when blocking a user. When a blocked user sees the "You are blocked" message, this is parsed as wikitext, and links are parsed on Special:BlockList, you will need to make sure when blocking a user that the message makes sense on all wikis. Also, block logs will not be shared. (You must also share your user table for shared ipblocks to work.)

Note that the comment table cannot be shared, which may cause issues with some blocking-related code, per phab:T214011.

iwlinks <translate> No</translate> iwl_from collisions
job <translate> No</translate> job_title collisions
l10n_cache ? ?
langlinks <translate> No</translate> ll_from collisions
linktarget ? ?
logging <translate> No</translate> log_page collisions
log_search <translate> No</translate> ls_value collisions
module_deps ? ?
objectcache <translate> Yes</translate> ?
oldimage ? ?
page <translate> No</translate> page_namespace and page_title collisions
pagelinks <translate> No</translate> pl_from collisions
page_props <translate> No</translate> pp_page collisions
page_restrictions <translate> No</translate> pr_page collisions
protected_titles <translate> No</translate> pt_namespace and pt_title collisions
querycache <translate> No</translate> qc_namespace and qc_title collisions
querycachetwo <translate> No</translate> qcc_namespace and qcc_title collisions
querycache_info <translate> No</translate> qc_type collisions
recentchanges <translate> No</translate> rc_cur_id collisions
redirect <translate> No</translate> rd_from collisions
revision <translate> No</translate> rev_page collisions
searchindex <translate> No</translate> si_page collisions
site_stats <translate> Yes</translate> The site_stats table could possibly be shared, to aggregate data over all your wikis.
tag_summary <translate> No</translate> ts_rc_id , ts_log_id , and ts_rev_id collisions
templatelinks <translate> No</translate> tl_from , tl_namespace and tl_title collisions
transcache ? ?
updatelog ? ?
uploadstash ? ?
user <translate> Yes</translate> A shared user table can be used to have multiple wikis that have shared user registrations, so that users need only sign up to one wiki. See Manual:Shared database .
user_former groups <translate> Yes</translate> You would need to share the user table as well, and presumably user_groups.
user_groups <translate> Yes</translate> Sharing the user_groups table will allow you to have global user groups. As with the block log, the user rights log is not shared.
user_newtalk ? ?
user_properties <translate> Yes</translate> By default, the user_properties table is included in the list of shared tables.
valid_tag ? ?
watchlist <translate> No</translate> wl_namespace and wl_title collisions