For anyone who is interested, Tim Perdue has performed a set of benchmarks comparing MySQL with PostgreSQL
See his article at
http://www.phpbuilder.com/columns/tim20000705.php3?page=2
and
http://www.phpbuilder.com/columns/tim20000705-res.php3
for the raw results.
For read performance, they are comparable, with mySQL performing about 50% better.
In the 10% write case, however, Postgres kept going beyond the client-concurrency load where MySQL falls over.
-- Neil
On Monday 29 April 2002 15:11, Neil Harris wrote:
For read performance, they are comparable, with mySQL performing about 50% better.
In the 10% write case, however, Postgres kept going beyond the client-concurrency load where MySQL falls over.
I suspect that's the problem then. Sometimes every page comes up fast (except a few specials like "find all pages such that no pages link to them"), then suddenly, for many minutes, I get nothing but timeouts. I suspect that lots of people are writing, which makes MySQL fall over. Particularly annoying when I'm trying to edit an article and I get repeated timeouts - then find that one of them went through and I get an edit conflict.
phma
[Neil wrote regarding MySQL performance:]
In the 10% write case, however, Postgres kept going beyond the client-concurrency load where MySQL falls over.
Personally, I suspect the hit-tracking feature is responsible for much of the slowdown. Currently *every* normal page load causes a write to update the number of accesses ("This page has been accessed 281 times.")
I recommend making the hit-tracking feature optional in the code, then turning it off for a few days.
In the long run, this kind of per-page tracking could be done more efficiently using the webserver's logs, perhaps updating the access count once per day using a separate script.
--Cliff
wikitech-l@lists.wikimedia.org