Are Commercial Databases Worth It?
No.
I've always called this plausible deniability in corporate culture. "It's not my fault the DB is down. I'm on the phone with Oracle right now, they'll have a fix soon". The OSS solution is much riskier. "I chose this free DB, and now it's broken." In large corporations, the first is much safer for the employee, but much more expensive for the corporation.
As a half-serious idea for a company, I thought of IT insurance. Rather than paying support to Oracle, we will audit your solution and charge premiums based on the riskiness of your setup. In case your OSS DB goes down, the insurance company would pay the downtime.
The company would provide two services. 1) I expect our "plausible deniability" would be cheaper than paying Oracle, and 2) we put a pricetag on the reliability of your setup.
I worked at HP in IT. We had literally hundreds of stupid little internal projects. Some were giant, some were 3 aspx pages. All of them used SQL Server or Oracle. But none of them came anywhere close to leveraging the databases.
I can think of only one app that was large enough and complex enough to really require a "commercial" db, and it was talking with SAP.... ohh, and it ran into constant problems.
What I don't understand is that other than features, the other argument is "Support". I have never seen microsoft get on the phone with a guy for free (yes you can pay...) and help out. But you know what, you can pay for a guy to help you out with postgres.
And you know, by going with proprietary databases, that cost so much money, there were severe restrictions on getting a database. They were in the hands of another team, who took weeks or months to get us setup. I know a part of that is server management, but another part was cost cutting on licenses. Remember that a small cause can have a very large effect in a corporate culture.
Where a lot of people make their mistake is in spending tens or hundreds of thousands of dollars on commercial databases and then doing nothing more than simple SELECT, UPDATE, INSERT type operations with them, bury them under an ORM and try to pretend they aren't there.
Can you get your money's worth out of a database like Oracle? I think you absolutely can if you USE the features it comes with. If you don't want to do that, or don't need those features, then you are throwing your money away.
Enterprise world is so full of insanity that this is just a non-issue. The company is going to waste a lot of money but who cares? You, as a developer, are lucky enough to work with Oracle, which is an excellent db. Here, I am forced to fill excel sheets for deployments (I have to write "compile this package here" or "copy/paste the executable here" -- no kidding), which are checked by a committee on tuesday and executed on the next thursday. No deployments are allowed in other days of week, except for very critical stuff. So, the insanity is everywhere, and choosing the wrong database vendor is just the top of the iceberg.
I've used MySQL extensively for personal projects (all of mine have been at a pretty small scale). I've also used both Oracle and SQL Server for projects at large companies.
There's probably not much of an advantage in the database engine itself, but the SQL Server suite shined in 2 areas: analytics and reporting. The 2 add-on components made large-scale data mining & model-building much simple, and also automated the generation & delivery of complex reports tracking many metrics. I could probably do both with MySQL, but only with much more effort.
In tandem with the entire "Buying a $BigCompany database never hurt anyone" and "software vs support" debate, a couple of specific points I'd like to make..
- Security
Securing data in a database is pretty important if you're dealing with any kind of sensitive data. Levels of sensitivity may depend on what you do and may vary over SSNs to sales numbers for next quarter. AFAIK (correct me if I'm wrong) - PGSql/MySQL don't really offer concrete solutions to protect data - apart from common sense like patches, secure passwords, et al. Now look at offerings from the big co's. Companies of any kind will feel more comfortable with these.
- Auditing/Compliance
Are you a public corporation? Semi-large? Do you have payroll or other info in a database? Enter Sarbanes Oxley! Easier to have solutions built by the db vendors rather than deploy 3rd party stuff.
Is the issue really commercial DBs? It seems like most projects that use a (SQL) DB are solving a problem they shouldn't have, and doing it in an overly complicated manner.
If a project truly requires ACID to the point there's a sensible worry about the disk holding the right data, I'm pretty sure I'd save money (and hair) paying for a medium server and a license to deal with that (particular) data. It's really rare to run into a problem that requires both that level of reliability and needs performance beyond what a medium server can reasonably handle. I think most projects are far far more likely to screw the data in some other way, so one could question if it's worthwhile.
I'm saying this having had to implement true ACID transactions (and replication) myself. It's a ton of work getting it right through all of the layers of libraries, os, filesystems, controllers, and drives. It's hard to trust user-level programs to be able to do it given an arbitrary stack below them. I place more trust in a system that can cut through some of those layers (or call across campus and control how some of those layers work) and work with particular hardware.
I place even more trust in someone screwing the data up at a higher level and it really not mattering nearly as much as people make it out to anyway. Even in "critical" cases like storing financial transactions, it usually just results in people having to call around or get in and fixing a few things.. which is WAY cheaper than the huge cost to lower the odds by 90%, and you've got to be prepared to do that anyway.
Not sure where he dug up that price chart. We run Small Business Server and it gets us the whole OS, along with Enterprise Edition on 4 processors for like $2,000 all in. That's what, 10 billable hours to pay for it? Cheaper than the box it's running on.
SQL Server is cheap, and like he said, it's miles better than the free options.
My favorite phrase in this article was "four-dimensional enraged-leprechaun hypercube visualization".
"Well sure, you spend a ridiculous amount of money on IT. Ever wonder why?"
So you have someone to blame, who is tough to identify with open source software.
Never forget, in many large enterprises, these decisions are not technical, they are political.
Yes. If you are a large organization and have the money for licenses and DBAs, they're definitely worth it.
Not everyone is a startup. Not everyone cares about clever hacks and rag-tag scalability and bragging about how they scaled up to 10k transactions per second on YouTube. Sometimes you just want to throw $10M at the fucking thing and have it work so everyone in your company gets the data they need.
IT and most departments have a budget, the more you spend the more budget you get next year. Nobody tries to reduce budget by saving here and there. Au contraire, you have to come up with ways to increase headcounts and needed resources so you get more budget next year.
Unfortunately that's how the corporate world works.