When debugging something unrelated, I noticed that a web request typically queryies the same fields twice for the wiki page associated with it.
SELECT page_id,page_namespace,page_title, page_restrictions,page_is_redirect,page_is_new,page_random,page_touched,page_links_updated,page_latest,page_len, page_content_model,page_lang FROM `page` WHERE page_namespace = '#' AND page_title = '#######' LIMIT 1 master: false trace: #0 /srv/mediawiki/php-1.32.0-wmf.24/includes/libs/rdbms/database/Database.php(1181): Wikimedia\Rdbms\Database->doProfiledQuery() #1 /srv/mediawiki/php-1.32.0-wmf.24/includes/libs/rdbms/database/Database.php(1682): Wikimedia\Rdbms\Database->query() #2 /srv/mediawiki/php-1.32.0-wmf.24/includes/libs/rdbms/database/Database.php(1773): Wikimedia\Rdbms\Database->select() #3 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(421): Wikimedia\Rdbms\Database->selectRow() #4 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(440): WikiPage->pageData() #5 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(478): WikiPage->pageDataFromTitle() #6 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(590): WikiPage->loadPageData() #7 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(631): WikiPage->exists() #8 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(269): WikiPage->getContentModel() #9 /srv/mediawiki/php-1.32.0-wmf.24/includes/page/WikiPage.php(256): WikiPage->getContentHandler() #10 /srv/mediawiki/php-1.32.0-wmf.24/includes/actions/Action.php(98): WikiPage->getActionOverrides() #11 /srv/mediawiki/php-1.32.0-wmf.24/includes/actions/Action.php(156): Action::factory() #12 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(155): Action::getActionName() #13 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(785): MediaWiki->getAction() #14 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(525): MediaWiki->main() #15 /srv/mediawiki/php-1.32.0-wmf.24/index.php(42): MediaWiki->run()
SELECT page_namespace,page_title,page_id,page_len,page_is_redirect,page_latest,page_content_model,page_lang FROM `page` WHERE page_id = '#####' LIMIT 1 master: false trace: #1 /srv/mediawiki/php-1.32.0-wmf.24/includes/libs/rdbms/database/Database.php(1682): Wikimedia\Rdbms\Database->query() #2 /srv/mediawiki/php-1.32.0-wmf.24/includes/libs/rdbms/database/Database.php(1773): Wikimedia\Rdbms\Database->select() #3 /srv/mediawiki/php-1.32.0-wmf.24/includes/Title.php(434): Wikimedia\Rdbms\Database->selectRow() #4 /srv/mediawiki/php-1.32.0-wmf.24/includes/Storage/RevisionStore.php(337): Title::newFromID() #5 /srv/mediawiki/php-1.32.0-wmf.24/includes/Storage/RevisionStore.php(1749): MediaWiki\Storage\RevisionStore->getTitle() #6 /srv/mediawiki/php-1.32.0-wmf.24/includes/Storage/RevisionStore.php(2107): MediaWiki\Storage\RevisionStore->newRevisionFromRow() #7 /srv/mediawiki/php-1.32.0-wmf.24/includes/Storage/RevisionStore.php(1508): MediaWiki\Storage\RevisionStore->loadRevisionFromConds() #8 /srv/mediawiki/php-1.32.0-wmf.24/includes/Revision.php(134): MediaWiki\Storage\RevisionStore->getRevisionByTitle() #9 /srv/mediawiki/php-1.32.0-wmf.24/includes/actions/RawAction.php(167): Revision::newFromTitle() #10 /srv/mediawiki/php-1.32.0-wmf.24/includes/actions/RawAction.php(134): RawAction->getRawText() #11 /srv/mediawiki/php-1.32.0-wmf.24/includes/actions/FormlessAction.php(43): RawAction->onView() #12 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(501): FormlessAction->show() #13 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(294): MediaWiki->performAction() #14 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(868): MediaWiki->performRequest() #15 /srv/mediawiki/php-1.32.0-wmf.24/includes/MediaWiki.php(525): MediaWiki->main() #16 /srv/mediawiki/php-1.32.0-wmf.24/index.php(42): MediaWiki->run()
In this case, the request was for index.php?action=raw.
Seems like this the first query from WikiPage should've populated the LinkCache used by Title, given the latter only needs a subset of the same information.