Page MenuHomePhabricator

Category->getName and Category->getID hit DB even if they already have the requested info
Closed, ResolvedPublic

Description

getName and getID use a generic function getX. That checks if the overall instance is initialized (doing so if it wasn't). Then it returns the requested info.

However, this is inefficient, since in some cases it already has that info.

For example, if you do:

$c = Category::newFromName( $catName );
...
$canonicalizedCatName = $c->getName()

it will hit the DB even though it already has the canonical name.

It should be lazy, and only hit it if it doesn't have the required info.


Version: 1.23.0
Severity: normal

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 3:07 AM
bzimport set Reference to bz61045.
phuedx set Security to None.

Change 472184 had a related patch set uploaded (by Agabi10; owner: Agabi10):
[mediawiki/core@master] Bug: T63045

https://gerrit.wikimedia.org/r/472184

Change 472184 had a related patch set uploaded (by Agabi10; owner: Agabi10):
[mediawiki/core@master] Prevent Category->getName and Categry->getID from hitting DB when they already have the requested info

https://gerrit.wikimedia.org/r/472184

Aklapper renamed this task from Category->getName and Categry->getID hit DB even if they already have the requested info to Category->getName and Category->getID hit DB even if they already have the requested info.Nov 7 2018, 6:01 PM

Change 472184 had a related patch set uploaded (by Jforrester; owner: Agabi10):
[mediawiki/core@master] Avoid hitting DB in Category getters when they have the required info

https://gerrit.wikimedia.org/r/472184

Change 472184 merged by jenkins-bot:
[mediawiki/core@master] Avoid hitting DB in Category getters when they have the required info

https://gerrit.wikimedia.org/r/472184