Daniel Mayer wrote:
Hey waitaminute - why not place the watchpage list on a regular wiki page so that Related Changes can do it's magic on it? As a matter of fact why can't that /replace/ the slow watchlist code completely? IIRC, the "Related Changes" and "Recent Changes" code is the same.
Actually, Related Changes is more like Watchlist than it is like Recent Changes, and when you dump a couple thousand links to Related Changes, it's pretty slow too.
Both Related Changes and the Watchlist have the same problem: they have a long list of pages sorted by ID or title, but need to report them sorted by timestamp. This requires fetching a couple thousand rows and sorting every single one before returning the last N edits.
As an example, it takes 10 seconds or so to return Related Changes on a copy of my watchlist:
http://www.wikipedia.org/wiki/Special:Recentchangeslinked/User:Brion_VIBBER/...
and a similar amount of time via Special:Watchlist. (Exact time may vary up and down depending on what's buffered and how much work the server is doing, of course. But they seem to be of the same order.)
It's also harder to do mass updates of text pages; watchlist entries need to be able to automatically follow things like page renames, which is very easy to do with watchlist associations in their own table.
-- brion vibber (brion @ pobox.com)