Followup to Rants and Revelations » Bad news on the Linode front:
I ran the same generator task on Gradwell and the Linode. On Linode, it took 21m1.1s, on Gradwell, 1m0.5s. Kind of a huge difference, don’t you think? So I copied the database and code to my home machine, which has 1024Mb of RAM instead of 96Mb, and dual Athlon MP1800+ processors, and it still takes 7m46s.
So either Postgres is way slower than MySQL, or I’ve done something really wrong when I ported the code.
I guess my next move is to try the Gradwell MySQL code on my home server and see how long it takes.
For some things MySQL is still faster than Postgres. However you have to remember that these are RDBMSen you’re dealing with and configuration settings for both can make a big difference to them. I saw some decent speed improvements with my Postgres install when I played around with a mount point setting (making it
directio
) and various Postgres system parameters – they are set to be conservative.You also have to remember that unlike Postgres, MySQL has a fuzzy idea of transactions which also gives it a performance boost. Its interesting to note the experiences of people using either MySQL or Postgres as the backend for DSPAM (statistical spam filter). Whilst MySQL is faster than Postgres (although the gap is smaller now thanks to some work I did on the SQL code the Postgres backend used), several people have commented on how their MySQL backend has gone a little wonky every now and again – especially after power outages and the like – whereas I’ve not heard any similar reports about Postgres.
Basically Postgres is slower as its a little more paranoid than MySQL, which gets its speed by playing a little more fast and lose with its data than I personally like in an RDBMS.