Last modified: 2011-11-25 07:12:47 UTC

Wikimedia Bugzilla is closed!

Wikimedia has migrated from Bugzilla to Phabricator. Bug reports should be created and updated in Wikimedia Phabricator instead. Please create an account in Phabricator and add your Bugzilla email address to it.
Wikimedia Bugzilla is read-only. If you try to edit or create any bug report in Bugzilla you will be shown an intentional error message.
In order to access the Phabricator task corresponding to a Bugzilla report, just remove "static-" from its URL.
You could still run searches in Bugzilla or access your list of votes but bug reports will obviously not be up-to-date in Bugzilla.
Bug 7311 - Create a two-link QueryCache table
Create a two-link QueryCache table
Status: NEW
Product: MediaWiki
Classification: Unclassified
Database (Other open bugs)
PC Windows XP
: Low enhancement with 2 votes (vote)
: ---
Assigned To: Nobody - You can work on this!
Depends on:
  Show dependency treegraph
Reported: 2006-09-13 13:49 UTC by Yuri Astrakhan
Modified: 2011-11-25 07:12 UTC (History)
1 user (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Description Yuri Astrakhan 2006-09-13 13:49:31 UTC
All proposed schema changes are at

There is a need for some special pages to cache two links per line instead of
one. Examples include [[Special:Disambiguations]], [[Special:BrokenRedirects]],
[[Special:DoubleRedirects]], and possibly any other that are currently not
implemented because of the caching limitations. The table structure will be
identical to querycache table, except that it will have two additional fields
(namespace2 & title2), plus it might have a number of additional indexes to
facilitate better sorting.

CREATE TABLE  `querycache2` (
 `qc2_type` char(32) NOT NULL,
 `qc2_value` int(5) unsigned NOT NULL default '0',
 `qc2_namespace` int(11) NOT NULL default '0',
 `qc2_title` char(255) character set latin1 collate latin1_bin NOT NULL default ,
 `qc2_namespace2` int(11) NOT NULL default '0',
 `qc2_title2` char(255) character set latin1 collate latin1_bin NOT NULL default ,
 KEY `qc2_value` (`qc2_type`,`qc2_value`),
 KEY `qc2_title` (`qc2_type`,`qc2_namespace`,`qc2_title`),
 KEY `qc2_title2` (`qc2_type`,`qc2_namespace2`,`qc2_title2`)
Comment 1 Yuri Astrakhan 2006-11-13 19:59:49 UTC
The table has been created in the databases, so the only thing left is to change
the special pages to start using `querycache2` table instead of `querycache`.
Comment 2 Rob Church 2006-11-13 20:03:54 UTC
If this table is to replace querycache, then it should probably just be named
querycache; the 2 can be dropped. Obviously this will need some co-ordination
and a bit of work in the update script.
Comment 3 Yuri Astrakhan 2006-11-14 00:37:44 UTC
We could delete querycache2 and simply add one more ns+title pair to the
querycache table. The positive would be a more consolidated data structure and a
much simpler common code for the special pages, but the negative is the wasted
space for all the queries that do not need a second title.
Comment 4 Rob Church 2006-11-14 08:46:07 UTC
I like the positives, though. Two tables for very similar purposes is taking the
Comment 5 Chad H. 2009-04-10 14:10:38 UTC
Fwiw, we've been using querycache and querycachetwo for several years now. Are there still any intentions to combine these into one table eventually?

Note You need to log in before you can comment on or make changes to this bug.