http://www.perlmonks.org?node_id=696729


in reply to [OT] Why I don't use Mysql for new projects

I've been both a MySQL DBA and an Oracle DBA. I've also hung out with Oracle DBAs who've been doing it since Oracle v4. Oracle, the gold standard by which all other RDBMS engines are measured, is accounted to be the absolutely worst RDBMS engine that could possibly have ever been written. Except, of course, for all the others.

Data management is a particularly tough problem. Particularly if the following requirements are all accounted critical:

Maintaining DBM::Deep has given me a very small window into what the developers of various RDBMS engines must go through in order to achieve those criteria. It's not surprising that each RDBMS has chosen to short some of those requirements in order to maximize others. Oracle, for example, has horrible ease of use, ease of administration, and speed of mutations isn't that great. And, frankly, Oracle has had horrible failures in terms of reliability. For example, in 9.2.0.2, there was a bug in how TIMESTAMP columns were stored. When it was found, the only solution was to upgrade to 9.2.0.4 and accept that there was lost data.

The difference between MySQL and Oracle? MySQL has put ease of administration much higher on the list. You would never consider using Oracle, even if you could use it for free. But, why on earth do you think that you can just willy-nilly use MySQL or PostgreSQL? Being a DBA is flipping hard. There's a gazillion things to consider, most of which you never even realize until you were bit in the ass by them.

So, don't blame MySQL for your lack of understanding of its architecture. There are courses for a reason. If you're going to entrust your production-critical data to something, why wouldn't you spend the week to really read and understand the documentation, regardless of the systems you choose to use? Or, are you going to tell me that you don't really understand Perl, Linux, or Apache? Are you just blithely assuming that people who aren't paid have your best corporate interests in mind?


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?