Friday, January 25, 2008

I don't do rants...normally

Normally, I don't do rants. But now I feel compelled to debunk the - IMO - downright slanderous post entitled "14 reasons not to use MySQL or other mid-range database management systems" by Curt Monash - an otherwise seemingly un-offensive blogger.

Anyway - here's my maybe somewhat emotional analysis. But really, this post is a load of cr*p! I mean, more than half of the "reasons" are not even about MySQL (as in the database - not the company), and the other aren't even reasons.

Judge yourself.

Many enterprises get quantity discounts. License and in some case even maintenance fees may not be bad at all.


You make it seem like this is an advantage! With MySQL, *everybody* gets a volume discount. We don't care if you're big or small, if you need many MySQL servers you simply pay *one single flat fee* to cover for support for *all you can eat*

http://www.mysql.com/products/enterprise/unlimited.html

Who cares if the system contains code for features you don’t need? Hardware is really cheap these days.


This is not a reason to go for a high end database - merely something that might not hamper you in doing so. That said, it's not that hard to argue why less is more. Take for example MS SQL's xp_cmdshell which lets you run an arbitrary OS-level command. Well, if your app has an injection vulnerability, an extra feature like this just allows a cracker more room to do damage. So it really pays off to be sure your database is exactly that - a database.

If you already have DBAs on staff, how much work is it to administer a few more small systems? Besides, an Oracle or SQL Server DBA has access to some pretty good remote tools, which let her administer many database servers at once.


I don't see how this is an argument to buy into high end databases. First of all, if you run MySQL or any database that is anything worth to you, you need a DBA. Period. The "besides" is hilarious - what's makes you think MySQL DBA's do not have such tools? In many shops I've seen Oracle and MS SQL DBAs use remote desktop or shell access to manage their databases, in much the same way as many MySQL DBAs manage theirs. And, in addition MySQL Enterprise comes with an enterprise monitor which lets you manage and monitor many, many (hundreds) of MySQL instances remotely.

http://www.mysql.com/products/enterprise/monitor.html

You can even get it for trial:

http://www.mysql.com/ent-trial-reg-2007/

If you run a Windows-only shop, why not go Microsoft soup-to-nuts?


heh, maybe because you want to rely on what you know will work - not on what you are promised that it will work. Sometime ;) Seriously - the choice for MS vs non-MS is all about choice vs piece of mind. Nobody ever got fired for buying Microsoft, so many IT managers buy a site-wide all MS license to get some piece of mind. They get some assurances that because it's MS everything is integrated and aligned and whatnot. But if you unpack the shiny boxes - that's when you find out how incredibly compatible MS is with MS. Not.

Contrast that to open source - not just MySQL. If it doesn't work or you don't like what you see: fine, grab a new. Try that with MS. Once people have bought into it, they feel compelled to make it work, why else did they spend all that money on it? We're talking about a company that can't even keep their frigging *browser* compatible between minor versions....seriously.

SQL Server used to be a mid-range DBMS, and still plays that role in many Oracle and DB2 shops today.


heh, this is hardly an argument. "Rain is wet, and still falls into many seas world-wide". I mean, how can this be a reason not to go for MySQL or another open source database?

Early on, Microsoft did a great job of usability engineering on SQL Server administration tools.


I won't contest that they did. But we are seeing it no being gradually replaced with more and more MS Visual Studio headaches. Is that what people really want?

Largely in response to Microsoft competition, Oracle radically improved its own tools. For sufficiently simple databases, installation and administration really aren’t that hard in any of the high-end DBMS.


gah...so how is this an argument for not choosing for MySQL? Seems like you should have titled your article "14 reasons why I like MS SQL" - not "14 reasons why people should not choose MySQL"

Oracle, SQL Server, DB2, and Informix all offer cheap or free low-end editions, with good upwards compatibility. Those might happen to meet your deployment needs, now and in the future.


I won't contest that the "express" editions are very useful development tools. But you must be joking when you are saying that these are serious deployment platforms. In fact, if you like these "Express" editions so much, you should be in favour of more MySQL, more postgres, more SQLite. Because those products are the sole reason that finally made the big vendors look for a way to make their overpriced offerings more appealing. Go rewind Tom Kytes Oracle XE announcement podcast - they started giving it away for free because they are basically forced to.

If your application grows so quickly that you really do wind up needing a high-end database management system underneath, you won’t have to rewrite it.


That's a load of it. MySQL is all about scaling beyond the scale-up threshold. Don't buy into bigger and more expensive - buy more and inexpensive.

http://www.mysql.com/why-mysql/scaleout.html

Most high-end database management systems have more robust datatype support than most mid-range DBMS, the PostgreSQL family of products excepted.


Not sure what this means exactly - I guess this is not specific enough for me to recognize anything that has to do with MySQL.

Upstart mid-range database management systems have a variety of maturity issues. What are the most common kinds of error messages you see in a typical week? If you use the Web a lot, MySQL errors may be in the top three. Those memory buffers seem to fill to the choking point all too often.


So now MySQL is an upstart? heh...yeah, you're right they've been around only 12 years. Personally the most common errors I see on the web are broken IE-specific pages but I guess that's another story. (actually I'm curious if that's in your top three as well) The most likely reason is that most dynamic websites are LAMP sites - MySQL is simply most ubiquitous. I don't know how ever you were going to substantiate your "memory buffers" remark but most mysql errors I see on the web are "out of connections" - i.e. the site grew so hard they need to phase in another MySQL instance.

Individual features may also not be very mature yet. MySQL has long offered stable transactions and decent clustering, but not necessarily with the same storage engines (and not necessarily either in the most common configurations). And how is performance on relatively new features like declarative referential integrity, user-defined functions, or stored procedures?


Referential integrity relatively new...boy you must be an old fart to call something that's been in there for more than 7 years "relatively new". And what about the new features in Oracle and MS SQL? I don't hear you complaining about the "relatively new" partitioning features in Oracle...

There are more and better third-party tools for popular high-end DBMS than there are for upstart mid-range database management systems.


And all of those are adding support for what database again? Right, MySQL, because at some point developers keen on those tools moved at some point to MyQL

Nobody you know ever got fired for recommending a traditional, over-engineered computing platform.


I think you hould make that your slogan Curt.


"On the whole, I think there should be a lot more use of mid-range database management systems than there is today. But the case isn’t entirely one-sided."

Well, you sure make a fine point out of making it look like a one sided issue.

13 comments:

Anonymous said...

As I said in other words when you left the same thing as a comment on my blog -- that was in effect Part 2, and it seems you didn't bother reading Part 1.

I also find it interesting that you'd so at odds with Marten Mickos' comments in the same thread. Perhaps you could come back and share the reasons that you disagree with him?

Thanks in advance,

CAM

Mark Callaghan said...

He wouldn't talk about MySQL if it didn't matter. I am sure the tune will change once he takes MySQL on as a client. I can't wait for his keynote at the MySQL User Conference.

rpbouman said...

"that was in effect Part 2, and it seems you didn't bother reading Part 1."

Gah...are you serious? I mean, what you refer to as "Part 1" are basically unattached and uncommitted musings about something as generic as "non leading dbms-es" which in summary reads something like

"...there are some other databases out there too, you know, and they don't cost nuttin' either..."

And the sequel to that is an article with a title that specifically promises 14 reasons not to choose one particular dbms (MySQL), even though the article contains maybe 2 or 3 rather sketchy objections against the product proper, the rest being simply endorsements of other products that you do like but which are otherwise completely unconnected to MySQL?

"I also find it interesting that you'd so at odds with Marten Mickos' comments in the same thread."

The explanation I have to offer to that is that he's probably smarter than me and knows better than to waste time on proving the obvious.

Curt - if you really would have some specific information on where MySQL is lacking - sure go ahead I'd be interested to hear about it. But a number of your "14 reasons" are simply factually wrong and others are easily identified as ill-informed bias. The majority doesn't even have to do with MySQL. Anyway I think I offered ample explanation as to what I think of your blog post.

Why not spend some time to refute my specific debunkings? It's almost as if you feel offended by being offered some contradiction.

Anonymous said...

Roland,

You seem to be objecting mainly to my post title. Had I called it "14 reasons to be skeptical of the argument I made in my prior post that favored the idea of using MySQL", most of your criticisms would be obviously ridiculous.

I think they're still ridiculous even given the title I did use.

I also think you're way over the top in using words like "slander" and "debunk", the latter being a hot button of mine anyway because of the person who made it famous in database circles.

If you'd actually said something substantive about technology, I would be more interested in responding in kind. But since you were mainly ranting about my writing style, I'd prefer to just let it drop.

If you do actually want to talk about technology, its applications, etc., please feel free to stop by and comment again.

CAM

rpbouman said...

"Had I called it "14 reasons to be skeptical of the argument I made in my prior post that favored the idea of using MySQL", most of your criticisms would be obviously ridiculous."

Please....take a moment to revisit your "Part1"...There is exactly 1 occurrence of MySQL in that body of that post:

"And to varying degrees, you can also do fine with MySQL, Pervasive PSQL, MaxDB, or a variety of other products – or for that matter with the cheap or free crippled versions of Oracle, SQL Server, DB2, and Informix."

In fact that article is entirely generic, has nothing to do with any database in particular. So how does that justify a follow up entitled

"14 reasons not to choose for MySQL ...etc"

What's so special about MySQL that you suddenly elect that to be part of the title of the counter view?

So my point of view remains that if anything is ridiculous it is your inclusion of "MySQL" in the title of your post.

"I also think you're way over the top in using words like "slander" and "debunk""

The terms "slander" and "debunk" are exactly right because your "14 reasons" article simply contains factual errors which make MySQL look bad.

"If you'd actually said something substantive about technology, I would be more interested in responding in kind."

I explained for each of the 14 reasons what I think of them and in most cases gave a reasonable counter argument. I was about as specific technology wise as you were when you wrote down your "reasons".

"But since you were mainly ranting about my writing style"

I object to this point of view. For example, if you look at my debunkings of your reasons #1 or #3 then you will see that I am offering pretty substantial evidence to counter.

"If you do actually want to talk about technology, its applications"

I gave pretty substantial arguments to counter your article. They are at least as substantial as what you wrote. I would have expected at least some indication as to why you think my reasoning does not hold.

Anonymous said...

EnterpriseDB is one of Curt Monash's clients -- he is paid to write articles such as these, and that is the reason why the title had MySQL in it.

The article and its motivations are as transparent as ever -- nothing but a shill for his clients.

Mark said it right: "He wouldn't talk about MySQL if it didn't matter." Actually, he wouldn't say these things if his clients didn't think MySQL mattered.

And no, Mark, Curt won't be keynoting at the MySQL conference any time soon...even if EnterpriseDB gets acquired for a billion.

Anonymous said...

If you want an example of libel (not slander -- slander is spoken and libel is written), just look at Jay's post.

When I write sponsored white papers, I disclose sponsorship. Nobody sponsors my blogs. Jay, an apology is in order.

And Roland -- we agree you hate my post titles. Fine. I can live with that.

CAM

rpbouman said...

Curt,

"And Roland -- we agree you hate my post titles. Fine. I can live with that."

You have been so consistently avoiding to address *why* I hate that one particular title. In fact you have been so consistent that some people may believe that you do so on purpose. However, on the odd chance that you did not get the message, allow me to explain it again.

I have repeatedly pointed out to you that your post contains factual errors that make MySQL look bad. You may be able to "live with that", and personally I don't think you are in a position to do any damage, but it is a matter of principle. Most people would feel some urge to set the record straight and make amends but for some reason you seem completely unaffected.

I am not the only one that has pinpointed factual errors in your post. Monty Taylor has done so as well, although you might not be aware of that post, so I can't blame you for not reacting to that one. But at least that shows that you apparently have no problem publishing wrong statements without properly informing yourself.

So my question is, are you deliberately ignoring these arguments and can we now give hope on any kind of sensible rational debate with you, or are *you* going to do something to make right what's wrong?

I do not ask any apologies from no-one, but I think a simple rectification of the factual errors is not too much to ask. If you need some help in identifying exactly which items in your post I mean, shoot me an email at Roland dot Bouman at gmail dot com.

Unknown said...

People that have been using traditional closed source applications for a long time have been lulled by their sales reps into the concept of accepting things without thought.

And then all of a sudden, they see this new wave of open source software products and huge numbers of developers, users and companies that gather around it.

To Curt's defense, that must be kinda frightening.

What must be even more frightening is that people see the potential in open software like MySQL without having been told about it by anyone from the Oracle/Microsoft/... (take your pick) sales department.

Strange as it may sound to the Curts in this world, these people have an attitude of making things work themselves instead of relying on expensive vendors to do it for them. In the end the results speak for themselves, with for example the biggest video, community and search sites on the web relying on open source technology such as MySQL.

That in the end *must* be the scariest thing of all.

Matt

rpbouman said...

Matt, thank you so much for speaking up for Curt ;-) Argueably, he needs it.

I admit I still feel a tad unsatisfied regarding this matter (I mean, were my refutations really that outrageous? Should I've toned it down a little bit? Have I offended him so much he didn't bother to respond constructively?) but it's wearing off pretty quickly now.

;-)

Unknown said...

Roland, IMHO there is absolutely nothing wrong with sticking to your guns on the important matters.

Take a look at this John Dvorak video:

http://www.youtube.com/watch?v=SAWDYaWAVQQ

It seemed strangly appropriate. 'nouf said.

Matt

Anonymous said...

For Roland:
Dude, get a grip with this MySQL of yours. When this piece of crap will pass the toy-database status, maybe I'll try to compare it with PostgreSQL or any other serious RDBMS (including the Oracle, DB2 or MS-SQL Server).
Even Widenius admited publicly that needs a revamp and a more serious engine than that myisam crap.
Innodb is something closer to reality , you can even rely on sometimes but with the performance hits.
And all this blog of yours being so partisan for MySQL, it doesn't offer the slightest trail of objectivity.

rpbouman said...

Thanks anonymous troll.

Jeesh, your p.o.v really was extremely enlightening. And how well did you comment on my critique!

I really feel convinced that I was wrong all along now.

Do drop by next time and hide your identity a bit more, it really helps this debate you know.

DuckDB Bag of Tricks: Reading JSON, Data Type Detection, and Query Performance

DuckDB bag of tricks is the banner I use on this blog to post my tips and tricks about DuckDB . This post is about a particular challenge...