I’m sick and fucking tired of people saying “Waaaah! Technology X sucks! No one should use it! it’s bad! Bleeeeeh!” or “Everyone needs to use technology Y – everything else is obsolete!”
It’s a whole bunch of garbage. Whatever works is whatever works.
There are people out there who complain that nothing works and everythign is broken. And there are other people who use the ‘broken’ things to just get their work done. Broken is relative.
Standards are nice. But a stupid standard does not mean that people should stupidly follow it.
MySQL is one of the usual things that gets caught in the crossfire. “MySQL is nothing more than a SQL interface to a File System!!!!” Egads! Is it true?! Perish the thought! First off – where do you keep your files? Unless you are inhaling glue from paper bags, it is most likely in a file system. So don’t underestimate a file system for holding onto files. Which is data. Which is kinda what a database does. Second off – licensing – and this one is annoying because of the hypocrisy – people freak out about it being under GPL. “Oh no! if it’s under GPL then my code will have to be under GPL!” In all likelyhood, unless you’re linking directly to it, no, it won’t. But if it did – that’s what the GPL does – what’s wrong iwth that!? Oh. You want to _sell_ your product and hide or not distribute your source code? Well, sounds to me like you should get a commercial license! That’s precisely what you’d have to do with any commercial product. But I guess the only real product we’re implicitly comparing ourselves to is good ole PostgreSQL.
PostgreSQL is a seriously underappreciated database. It’s easy, it’s small, it’s super-duper flexible. You can put in triggers and constraints and stored procedures and all the crazy crap you could dream of. I have assembled queries which any real practical human being would shoot me for, and thrown them at Postgres, and it will tell me the answer eventually. I’ve worked on several projects, and PostgreSQL is usually my first choice of database to start with. However – it’s slow. or it can be. replication is done as an external project. I couldn’t make it run – but I was on a funny platform, OpenBSD. But either way, I don’t like nor trust that replication solution. Another ‘however’, however, is that Postgres has a great license – BSD. So will I use Postgres again? Absolutely. It’s a great database.
Another tech guy I respect a lot is a big Postgres fan. He’s no religious nut, but he did bring in a DB guy to help him tune his Postgres install. Since I’ve been pestering my buddy to at least look at MySQL for his reporting or analysis purposes, he asked his DB guy, “Why’s MySQL so fast?” And this guys answer – “it estimates.” No, not true. MySQL kills babies. That’s why it’s fast. And it causes tiny electric shocks to your privates. C’mon. Can’t someone say “I don’t know?” Or even, “No, it’s not fast.” Or, maybe, something that was actually true – “If you use MyISAM tables and have enough write queries, you’ll end up locking that table most of the time, and your reads will bunch up behind it and you’ll have a big giant mess. PostgreSQL, because of its transactional nature, default row-level locking, etc, will never do that. Unless you explicitly or implicitly lock the table – change schema, drop/add indices, etc. But for read-heavy querying, MySQL is stupid-fast.”
I’ve used Commercial databases – Sybase in my case. I liked it too. Again, a whole other set of pros and cons to evaluate.
Now if someone held a gun to my head and said, “Okay, tell me which database is BEST” I would have to answer none. They all work well in different environments. They all have their own quirks. they’re all different. Use one in one circumstance, one in another.
But I guess, in our computery world, sometimes people start placing their identity in their tools. And they start advocating one thing over another for no good reason. Well, not for no good reason – I presume it’s because they truly believe what they’re saying.
Let’s see, where else do people go nuts on this – the DB one is pretty nasty – oh, computing platforms. Mac vs. Windows, Linux vs. Windows, Solaris vs. Linux, etc, etc, etc. I once told someone, “I don’t care if it runs on an Amiga, as long as it’s supported, it’s stable, and it does what we want it to.” No offense intended towards the Amiga people. Hell, even Gentoo vs. Red Hat vs. Debian probably causes some flamewars. I don’t see how you can pin your self-esteem to these things.
I know my bias – I can see it rearing its ugly head, when I’m doing some preliminiary evaluation of some server hardware I’m interested in for us here at Volchok. There’s these new CPU’s that Sun is using in these neat new 1 and 2U boxes…they run 32 some odd threads of execution, these weird multi-multi core cpu’s…
Now let’s evaluate what I know and what I don’t know here. #1. Linux is good and cheap. #2. x86 is the volume platform of choice. It’s an ugly instruction set, but it’s fast and used extensively and flexible. #3 Solaris may or may not be free. #4 Sun hardware costs more than other people’s hardware. #5 Solaris is good, old, reliable software, but it’s a touch clunky unless you spend some time getting used to it.
The right choice (if a server is to be purchased at all) is probably Red Hat Enterprise on x86 boxen (probably Opteron). But I keep wanting to find some way of convincing myself that the T1000 (gotta love the name!) is a Good Purchase for us. The Application Containers/Zones/whatever the fuck they’re calling it thing, maybe that makes sense…the fact that it would be used as a webserver implies the multiple cpu’s might be nice…but really, who am I kidding. I want the neat new Shiny. I read benchmarks for everything, they’re good. But not good enough to justify the ‘weirdness factor’ and the price. I will keep at it, but eventually I figure I’m going to lose out and have to buy the conventional box. Feh.
Anyways, my rather rambling point is – use whatever gets the job done. Don’t be biased, if you can avoid it. Recognize your experiences as just your experiences, not everyone’s. Although don’t discount them. Bring in whatever technology that gets the job done – but realize the majority of your spending is going to be maintenance of the damned thing. So if you have to buy an expensive admin to keep your doodad running, you’re undoing whatever you’re saving on the thing in the first place (that’s another oblique stab at your brilliant Sun box purchase idea, Brady. No Shiny for you.) What you know, personally, and what you know, institutionally, is definitely what you can support – possibly one of the reasons why my friend shouldn’t use MySQL.