While using Replace Text to make a massive amount of changes to a wiki (25,000+ pages), the database would die often because of the massive amount of stress it's being put under.
I tried using both the CLI script and Special:ReplaceText. The problem with the CLI script is if it dies, when it's being re-run, it has to restart and do a SELECT
SQL query to search for all the pages to replace again. If the CLI script keeps dying, it becomes really, really inefficient to keep doing this SQL query, especially if you increase the limit from 250 to say 1000.
The benefit of the job queue is if it dies, it can pick right up from where it left off. Furthermore, the SELECT
query only needs to run once. And usually the SELECT
query won't die, but if it does, it's more probable it will succeed than all 250+ changes to the database.
Perhaps it would be better to add an option in the CLI to allow the option to add the pages to be replaced to the job queue, just like the special page?
Sorry if this is the wrong place to make the suggestion, I can move it to Phabricator or somewhere else if that's preferred.