Last modified: 2008-12-16 04:28:32 UTC
The query in updateArticleCount.inc.php's makeSql() function can be made faster an less RAM-intensive. It currently queries for a ton of rows, then counts the number of rows in the result. The current query is: return "SELECT DISTINCT page_namespace,page_title FROM $page,$pagelinks " . "WHERE pl_from=page_id and page_namespace IN ( $nsset ) " . "AND page_is_redirect = 0 AND page_len > 0"; but could be changed to: return "SELECT COUNT(DISTINCT page_namespace,page_title) FROM $page,$pagelinks " . "WHERE pl_from=page_id and page_namespace IN ( $nsset ) " . "AND page_is_redirect = 0 AND page_len > 0"; The code in the count() function would have to be updated also. Instead of $count = $this->dbr->numRows( $res ); $this->dbr->freeResult( $res ); return $count; it could be changed to: $row = $this->dbr->fetchObject( $res ); $this->dbr->freeResult( $res ); return (int)$row->count;
CORRECTION!!! The query that it should be replaced with should be: return "SELECT COUNT(DISTINCT page_namespace,page_title) as count FROM $page,$pagelinks" . "WHERE pl_from=page_id and page_namespace IN ( $nsset )" . "AND page_is_redirect = 0 AND page_len > 0"; The difference is the addition of " as count" in there. Otherwise there will be an error on the line below where it has "return (int)$row->count;"
Done in r44648.