There was an interesting post today on highscalability - http://highscalability.com/blog/2010/11/4/facebook-at-13-million-queries-per-second-recommends-minimiz.html
The discussion/comments touched upon why mysql is a better idea for Facebook than Postgres. Here's an interesting one
One is that PG doesn't scale that well on multiple cores as MySQL nowadays.
Another is in fundamental differences of storage architecture - all MySQL/InnoDB data is either a clustered primary key, or secondary key with PK pointers - logical relationships between entries allow to have index-only scans, which are a must for web-facing databases (good response times, no variance).
One more reason is that in heavily indexed databases vacuum will have to do full index passes, rather than working with LRU.
As for sharding, etc - there's no way to scale vertically infinitely - so the "stupid people shard" point is very very moot.
It is much cheaper to go the commodity hardware path.
or
In general Postgresql is faster at complex queries with a lot of joins and such, while MySQL is faster at simple queries such as primary key look up.
I wonder if anyone can comment on this - especially the part that PG doesnt scale as well as MySQL on multiple cores ?
regards
Sandeep