refreshLinks.php: Tweak exit condition in deleteLinksFromNonexistent()
Instead of exiting the do...while loop only once a query returns zero
rows, exit whenever fewer rows than the batch size are returned. This
could save quite a bit of time when the highest nonexistent page_id
found is a relatively low one.
Follows-up 40e300b827.
Bug: T44180
Change-Id: I14d2d48c2405fcc0bd05a3181ba6293caef5298c
This commit is contained in:
parent
db00239568
commit
1976b1a6fd
1 changed files with 7 additions and 6 deletions
|
|
@ -284,7 +284,7 @@ class RefreshLinks extends Maintenance {
|
|||
$this->output( "0.." );
|
||||
|
||||
do {
|
||||
$list = $dbr->selectFieldValues(
|
||||
$ids = $dbr->selectFieldValues(
|
||||
$table,
|
||||
$field,
|
||||
array(
|
||||
|
|
@ -295,15 +295,16 @@ class RefreshLinks extends Maintenance {
|
|||
array( 'DISTINCT', 'ORDER BY' => $field, 'LIMIT' => $batchSize )
|
||||
);
|
||||
|
||||
if ( $list ) {
|
||||
$counter += count( $list );
|
||||
$numIds = count( $ids );
|
||||
if ( $numIds ) {
|
||||
$counter += $numIds;
|
||||
wfWaitForSlaves();
|
||||
$dbw->delete( $table, array( $field => $list ), __METHOD__ );
|
||||
$dbw->delete( $table, array( $field => $ids ), __METHOD__ );
|
||||
$this->output( $counter . ".." );
|
||||
$start = $list[count( $list ) - 1] + 1;
|
||||
$start = $ids[$numIds - 1] + 1;
|
||||
}
|
||||
|
||||
} while ( $list );
|
||||
} while ( $numIds >= $batchSize );
|
||||
|
||||
$this->output( "\n" );
|
||||
wfWaitForSlaves();
|
||||
|
|
|
|||
Loading…
Reference in a new issue