Not a Troll

Hey, my entry below ‘dissing mySQL was not meant as a troll.

I said:

When I started this project, I sort of gave in and had it running against mySQL — while I hate it, it is the dominant open-source database (for better or for worse…). MoveableType runs against this, and MT is used all over the Blogsphere, so whatever…

As I began coding and wanted to do stuff, however, I quickly ran out of obscenities to use for this sad excuse of a database.

Sorry, mySQL doesn’t do it for me.

To me, mySQL = Microsoft Access. Both do a lot and a lot well. For 90% of the uses out there, this is all that is needed just about all of the time.

And both databases are incredibly simple to set up (hell, I’m still screwing with an Oracle install on one of my Linux boxes. What a pain in the keester!). Postgres is a little awkward to set up (“Is the postmaster running on port 564” or whatever errors) — you have to create users, initdb and all that.

For me, mySQL was a no-brainer (perfect for me!) to install: Installed (from RPM) and it was there. Bang. Simple.

Access, of course, is just “there.”

So both Access and mySQL have merits, but not for running a high-volume, highly transactional Web site.

Yes, my opinion. But look at how often Slashdot – Perl/Mason against mySQL goes down. Daily. I can’t imagine it being the code (though the code is pretty convoluted – download the TAR and look at it. Messy!).

Ditto for the new Internet meme I wrote about recently: Blogshares.com – PHP against a mySQL database. While the traffic volume may well have played a role in it’s at-least-initial instability/slowness, I think the database was a bad choice. First of all, I think mySQL is just not hardy enough for it, and this is a site that screams out for stored procedures – which are not supported by mySQL (and still will not be in the next [4.1] release).

mySQL seems to do well with simple selects, but even this “talent” is being usurped by Postgres, at least according to a fairly impartial test of the two by Tim Perdue of phpbuilder.net.

And while my Blogging tool will probably never move off my home (behind firewall blah blah) box, while it will probably never be used for actual production of my or anyone else’s blog, it is still designed to be used by multiple users with high volume.

At least that’s my goal — so why not set the bar high?

RE: blogshares – While I do think that mySQL is not a good choice for this site (lots for reads and writes; data-integrity issues; transactions issues [that mySQL does not support] ), I fully acknowledge that it’s tough to find a host that will run Postgres for you. (To be honest, I don’t know if it’s even possible…)

The Linux hosts all come with Perl, virtually all offer PHP (at least in the upgrade package).

Databases are a different story. Usually there is mySQL and sometimes mSQL — and the database option is often an upgrade. This is changing slowly, but still, it’s rough to get a good/straightforward database hosting on Linux. (This is also true on the Windows side, with different databases: Access/MS SQL Server/FoxPro.)

So the user is pretty much stuck with mySQL (mucho better than mSQL – at least from what I read…).

So I understand the choice. I just think it’s a bad one that is going to be problematic, and — guess what? — it already is.

That said, I see the reasons that MovableType.org went with mySQL:

  • Like it or not, that’s the database you can get from a Web host. ‘Nuff said.
  • While I have serious “issues” with mySQL, it does do well in “selects only” areas. And what is a blog? ONE person makes updates (inserts), the rest is reads except for a possible comments section. Like Access, mySQL is well-suited for this.

That still does not explain why Slashdot has not converted over to either Postgres or Oracle: This is a highly-transactional site.

In addition to users clicking around to stories and comments, there are users adding comments, users meta-moderating, user being added/edited and so on.

There’s a lot of shit going on.

And – about once a day, it seems — that “lot of” hits the fan…