On Friday 01 January 2010 11:54:58 am Jean-Michel Pouré wrote:
I looked at MySQL table and they had unique indexes. This is what MySQL does: it is only a desaster. It can work for small sites, but when using large sites, you need a minimum of two servers, one for database, the other for MySQL. And you go beyond 1000 simultaneous users, you probably need a farm, which will ruin you.
Please do not spread FUD on the support list. MySQL can be an extremely effective database and very fast and scalable, if you know how to configure and maintain it properly. There are plenty of people who have such knowledge, and MySQL runs several very high-end sites. (Slashdot and, oh yeah, Drupal.org come to mind.) If you don't know how to maintain a MySQL database and try to throw something that heavy at it, sure, it's going to crumble. The same is true of any other database, or any web app, Drupal included.
By the same token, Postgres in its default configuration on most Linux distros is a complete and total performance disaster. You'd be lucky to run a low- traffic blog on it without your system breaking down in tears. No one in their right mind would run Postgres default config for a Drupal site.
'course, if you know how to maintain a Postgres database then sure, you can make it sing on low or high traffic sites. And someone who knows MySQL can do the same with MySQL. Knowing your tool matters, no matter what the tool.
For "install and forget" setups, yes, MySQL is better suited out of the box. But for complex or high-end setups, either DB will require knowledge of the tool. That does not mean that only "people with no SQL background may consider MySQL", and it is rather disingenuous to suggest that is the case.
Besides, what the OP asked about was how to selectively invalidate the cache to avoid running queries at all. A rant about how Postgres would be faster than MySQL really doesn't add anything to the conversation.
--Larry Garfield