databases

Ok the title is an attempt at humor, by applying direct translation of a popular Portuguese saying. But, in essence, it is true. I am not a DBA, but during my work history I’ve messed around with several databases, including some that have faded into history’s recycle bin.
Does anyone still remember msql? I do. It was the first open source database I worked with. I tried, but I just can’t remember much about it… I just remember using it on the command line, which was very simple. I believe we had some websites using it as a backend, but that’s about it. Mind you, this was in the early 90’s.
Since that I’ve messed with Oracle, MySQL, Postgres, and I’m happy to say I’ve survived database problems in all of them 🙂
Every now and again, people come up to me and ask which is better? MySQL vs Oracle vs Postgres? I never can give them a definite answer. Each database has it’s strengths and also some weaknesses. Lately I’ve worked very little with Postgres, and because of that, it won’t be my first choice in any project. I do remember that it had (and maybe still has) one distinct advantage. It’s support for geographical information was much better than the others’.
Oracle? Well we all know Oracle. And we also know it’s price-tag. The one advantage that immediately comes to mind is the support contracts. Yes they are expensive, but when you’re in a fix, and you need help, you can get it. Well most of the time 🙂
MySQL also has a enterprise edition, and you can also buy support contracts for it. But up till now, all my “clients” have chosen the community edition, and decided to leave the support in the hands of their trusty sysadmins-cum-DBA’s.The main reason for this is price. I believe most people never even conceived the idea of paying for support for an open-source database. Yes, the community is great and very active, but that can sometimes be a problem. When you are looking up some rare arcane configuration option, you sometimes can’t get a clear definite answer from the official documentation site, and you even get conflicting information from all the blogs and forums out there. Than can be a problem, especially when you are in a stressful situation, trying very hard to solve a problem without creating an even worse one.

So, all things considered, in my case, my first choice is MySQL. It’s the one I know best, and also the best documented. Yes, even considering the above rant. If there are no specific requirements or indications, MySQL it is.
Following that, it is not so easy to decide… If it has to be free of charge, I go with Postgres. If it needs a support contract I go with Oracle.
O course this doesn’t take into account the client’s expertise with any of these databases. If they already have some prior knowledge I find they tend to prefer what they already know.
I also find MySQL very “easy” to work with. Most people can install a working copy in a couple of minutes, and start using it. I concede that it won’t be properly configured, and much less optimized, but hey, sometimes you just want to throw a couple of things together and see how they work. You can always optimize it later.
I don’t really imagine anyone installing Oracle with the same ease and speed.
Postgres is a contender, but I think MySQL is the winner here.

What do you guys think? Any major differences in your method of choosing?