Monday, November 27, 2006

Where am I deploying MySQL, revisited...

The internet is a great thing. You can find almost anything and share your ideas with anybody that is willing to listen. Unfortunately, that means that anybody with an pugnacious personality and a keyboard also has a voice.

A couple weeks ago, somebody asked me where I deploy MySQL. I created this post about where I think MySQL's sweet spots are in my organization.

I'm no MySQL expert, I'll admit it. In fact, right at the top of the post I indicate as such:

In my opinion, I'd use MySQL for anything but the most mission critical applications. I'm not saying MySQL can't handle the most mission critical applications, but I'm not comfortable betting my business on MySQL at this point.

Sheeri Kritzer decides to put her own disparaging slant on my post and writes MySQL Is a Great Database, But Do Not Use It???? I posted a comment on the blog clarifying my position on a couple points, but wanted to expound on it a little more here.

First off, I didn't say nor did I imply not to use MySQL. I didn't say anything of the sort. I simply explained where I use MySQL and what kind of applications I use MySQL for. Nowhere in the post did I say MySQL is only good for XYZ type application in every organization.

She also goes on to pick apart this paragraph:

Last, but not least, MySQL is suited for data marts ( less than 1TB). Stuffing lots of historical data into denormalized relational tables is what "LOAD DATA LOCAL" is all about. These types of applications aren't needed 24x7 but require snappy response times when queried.

with

In the third sweet spot, you say MySQL is good at stuffing lots of data into denormalized tables. I’ve been using MySQL for quite a long time, and I missed the part where stuffing lots of data into normalized tables is slow. It’s fast for stuffing lots of data into tables, period.

Um, I guess if I stood on my head with one eye closed my paragraph says "MySQL sucks at stuffing lots of data into normalized tables."

Next, we get into a common misconception:

And MySQL isn’t “just as fast as the next guy”. It’s FASTER, otherwise why would people use it, because it’s much less featured than Oracle? This I’ll admit — however, you can code around features. No amount of code can make Oracle faster.

Where, oh where, do I start? I know I use MySQL because it's cheaper. I wouldn't make a blanket statement saying it's FASTER. Sometimes it's faster, sometimes not. All I have to do is come up with one example of where MySQL is slower and the blanket statement is false.

People that have been in this business a little more than a couple years know lots of examples where people think they can code around features. And no amount of code can make Oracle faster? If you treat it like a big black box, then you're probably right. But treat it like a sophisticated piece of software that has it's on intricacies, then yes, code matters.

...has nothing to do with MySQL, it's a reply to the previous comment about what's missing in Oracle SE vs. EE.

And I purposely didn't make this an Oracle/MySQL comparison. Primarily because I can't say with authority how MySQL behaves. I could bring up the fact that you have to bring down the db just to add a datafile to the InnoDB tablespace, but I'm not 100% sure you can't do that online. I could also bring up the fact that you have to shutdown the database to change the size of your logfiles, but again, I'm not 100% sure that's the only way to do it.

Apparently MySQL is her gig and she's a zealot for the software. That's cool, more power to ya. But don't belittle me because that's not the only thing I use. And if you're going to criticize me, at least have the courtesy of alerting me to the fact that you have done so.

Mostly I was responding to what seemed to be a post saying "MySQL is OK but I wouldn't use it in production." MySQL has plenty of faults; I'm not blind to them.

You still stand by your statement that you would not use MySQL for "mission critical applications." I still stand by mine that I would use it in those cases.

Mostly I was picking apart your arguments, since you seemed to say "MySQL is great, but don't use it for anything mission critical." I think it's great AND I'd use it for mission critical applications -- and do.

I never said you don't intend to use MySQL; in fact we agree that the reason you do not use MySQL in "mission critical applications" is that you are not comfortable enough with it.

In my post, I simply picked apart what I thought was confusing and contradictory.

I do apologize if you found it disparaging. I thought the article was very confusing, as you were talking about the sweet spots, but then said "But I don't use it for mission critical applications." And yes, that was a personal statement -- *you* don't use it for mission critical apps; that doesn't mean you're not recommending it to others, etc. You're writing about your own personal experience.

That is why I chose to pick apart the arguments in a different forum -- not to hide behind anything, but just to go through the logic myself. The question marks in the title and the repeated questions in the post should have clearly shown my confusion upon reading your post.

Yes, I got snarky towards the end, but I was, and still am, confused as to how you can point out the sweet spots and then say "but I wouldn't use it for mission critical applications" -- in a respected blog like yours that's basically saying, "I know my stuff, and I don't use it for important things, so neither should you."

As a respected blogger, you should understand that your blog, through regular readers as well as web searches, is used as a fountain of knowledge. As such, please do strive to be explicit and clear when you're talking about this stuff. You have a lot of power, so be aware of that.

As for your post in my journal, I never said that MySQL was better than Oracle. Many businesses make a lot of money with only Oracle databases. Oracle is a good, solid database. My point was that MySQL is one of the heavy hitters in the enterprise database world, whether you admit it or not -- and when you say it isn't, even though you say and mean it isn't "for you", people will take it as not enterprise for *them*.

As a final note, please accept my apology. My post wasn't mean to flame you outside of your journal, nor show any disrespect -- merely to open up what I saw as logic flaws, making your post confusing to me.

As for letting folks know that I'm writing about them, that's what trackbacks are for. I assume any blogger that wants to know whose reading them has those enabled, which is why I linked to your post.