Originally posted by vitalyb
PostgreSQL has other troubles... First of all my testing OS is Windows and so I can't experience the database true speed that way.
Yep, if you're on windows, your choices ala postgresql are pretty limited right now. You can:
Wait for the windows port that should be in 7.5 in the spring. OR
Install a windows port that is free but unsupported (there are several, but most are 7.2.1 or older) OR
Run cygwin, which is SLOW. OR
Setup a linux box OR
Use VMWare, which is faster than cygwin, but not as fast as linux. OR
Try out firebird / interbase, which runs very well on windows.
Also, I keep finding documents of comprasions between MySQL and PostgreSQL proving how slow it is (like this one) which quite discourage me from the whole postgresql. Add to that the not very high amount of hosts allowing postgresql... Well.. You get the point.
Sorry, but that comparison is so very lopsided. Try a comparison that matters, like how well each database runs when there are 1000 readers, and 100 writers to your database. How fast a database runs for a single user is basically unimportant as long as it's "fast enough", which most of them are nowadays. Note that SQLLite can only run that fast for one single person. It has massive locking / performance issues, which means it will let you build a site that is lightening fast in single user testing, but implodes under heavy parallel access.
P.S It is very possible that the features given by postgresql overcome its speed in these documents. I can't really know that... I am discouraged by them anyhow. Moving data back and forth is quite a mess.
What is far more possible is that the benchmarks you are looking at are meaningless for comparisons in the real world, where hundreds or thousands of people hit real databases at the same time. I can run 200 to 600 transactions per second on commodity hardware with a parallel load of 50 writers and hundreds of readers in Postgresql. Neither MySQL nor SQL lite can handle that kind of load and maintain transactional integrity.
Postgresql fills a different design / problem space then either MySQL or SQLLite. They are perfect for workgroup size applications that are mostly read and have little problems with contention. Postgresql is what you use for larger groups with heavy contention. Oracle is what you use for very heavy parallel load with failover, point in time recovery, etc...
If a database benchmark doesn't run multiple threads doing the same basic things (i.e. creating contention) it doesn't mean squat, because you're gonna eventually need to handle heavy parallel access as an application gets more and more use. Finding out that your database choice results in collapses under load in production is bad. find out in the testing phase.