Saturday, February 11, 2006

"Entirely uninterested in fancy features like stored procedures, triggers, and the like"

Here's my response to David Heinemeier Hansson's statement about being "entirely uninterested in fancy features like stored procedures, triggers, and the like" and Frank Mash's article about this issue.

MySQL simply *needs* features like Stored Procedures, User Defined Functions, Triggers etc. to be taken serious on the database market! So long has MySQL been criticized for not providing them - now as they have been introduced, it would be stupid to criticize MySQL *for* providing them.

MySQL has a very good chance to get as advanced as any other database system without losing it's simplicity. I don't think that performence will suffer a lot in the long run, because performence optimizations will certainly go on forever and will certainly overcome the speed decreases that may come from implementing new features. On the other hand, the other database systems will hardly ever have a chance to become as convenient to work with as MySQL (of course, people will always like what they are used to - if somebody has always worked with another product, he'll be more comfortable with this than with another - but for new users, MySQL is probably less painful to start with than the others).

The great thing is - people can still work with MySQL 5.0 the way that they were used to with earlier versions. They can decide whether to use the new features, or not. And that's exactly the right way for MySQL! Continuing to get as advanced as possible without breaking downward compatibility - where possible (and useful).

However, it is very important that MySQL also makes migration from other database systems as simple as possible. MySQL plans e.g. to introduce new languages for SPs - this would be a good chance to introduce languages that are compatible to other database systems to make it easier to migrate from them to MySQL.

I certainly wouldn't like to go without the new features anymore and if MySQL wouldn't have chosen to introduce them, I would have had to consider very seriously to move completely to e.g. PostgreSQL. In fact, the introduction of these new features was even my prime motivation to get involved more deeply with MySQL and to create the project. Probably, it wouldn't have happened if MySQL hadn't chosen to implement them.

MySQL is on the right track - and I hope (and I'm very confident) that MySQL continues to stay there. Also MySQL 5.1 makes further important steps towards the right direction :-).


Frank said...

As always, a very well executed article. I was highly anticipating your response and really enjoyed reading it. I second everything you say here. SP and triggers are becoming a necessity for many DBAs and optimizations will definitely follow.

MySQL definitely needs to focus on migrations and continue to develop more feature as long as they don't break downward compatibility.

Glad to see DBAs sharing the same thoughts.


Markus Popp said...

Nice to hear that - thanks!

Oups - I forgot to add the link to your article (prepared the tags but didn't insert the URL) - but now I've added the link :-).

Frank said...

Thanks for the link Markus.

I am glad Jay is writing about it too :)


Anonymous said...

As a DBA I think the world is changing even as I type this. I see more and more where the database is only CRUD(Create, read, update & delete) and fewer people are using stored procs. It seems that eveyone wants to pull any and all logic out of the database. Slowly but surely the database is being created by the developers not a separate step by a data modeler. I think this framework helps support that.