Morgan Tocker ([info]mtocker) wrote,
@ 2009-04-08 13:48:00
Previous Entry  Add to memories!  Tell a Friend  Next Entry
Entry tags:mysql

Who is going to make MySQL easier to use?
This may appear a bit of a rant - but it's really intended as more of an observation from having trained people how to use MySQL, and noticing that everyone seems to make the same beginner mistakes. If you read the "Continued MySQL Values" on the MySQL Website, you'll notice that the third one in the list is:

  • The best and the most-used database in the world for online applications
  • Available and affordable for all
  • Easy to use
  • Continuously improved while remaining fast, secure and reliable
  • Fun to use and improve
  • Free from bugs

Note that "Fun to use" doesn't sound much like a database, and "free from bugs" will always be a distant dream ;).

It was Easy to Use that got me into MySQL, but I think this is one of the goals that has lost focus over the years. If you look at bugs.mysql.com, there are a lot of annoying little S5 (Feature Requests) that would probably take the right person only a few minutes to fix. The sort of things I am talking about are:
  • SHOW SLAVE STATUS - Has at least one annoying ease of use bug. If it refuses to connect to the master because it shares the same server id, it won't show you that here. You have to go to the log file.
  • SHOW SLAVE STATUS Also shows you the 'last error' it incurred, with no way to clear this error. It confuses beginners
  • What is the difference between this wait_timeout and interactive_timeout thing, and why is it that when I set wait_timeout to 0 it converts to wait_timeout =1 and disconnects me? - I would prefer wait_timeout=0 to mean unlimited - not that I can think of too many good reasons to use it.
  • The anonymous user serves almost no practical use.
  • Changing InnoDB log file size requires you to do some shutdown and rename trickery, when this should be automatically done for you.
  • When connecting to a server on -h localhost mysql decides that "oh, you want the socket file", and due to misconfiguration it might go to the wrong location and tell you it can't connect even though your server is running.
  • The error log file is very bad at offering levels of configurable verbosity, or consistency which would allow you to grep through it for errors easier. Often it tells me an error code, which I am supposed to look up in perror - but most beginners don't know about perror.
  • ...

But they are probably never going to be fixed. I think it is sad to see that many MySQL users have now seen that these issues don't get fixed, so they no longer submit feature request bug reports. My theory is that:

  • MySQL/Sun is busy implementing new features to snag new customers. If they update a feature (such as the subquery optimizations in 6.0) it is normally going to be one of those big compelling features that all of their customers are demanding.
  • The small number of Community Contributors are most likely going to be writing patches to scratch an itch (either better performance or diagnostics). It's not going to be one of these annoying little things they long ago discovered and will no longer care about.
It's good to see that Drizzle has actually been very good at attacking a large number of items on my list. It's just sad to have to wait until Drizzle is ready, because this part of MySQL isn't broken, it just needs some love.



(5 comments) - (Post a new comment)


[info]ctrl.alt.delete.co.at
2009-04-09 06:57 am UTC (link)
Not this is partly a rant partly from hard learned facts while I was forced to use CSV on Steroids (a.k.a MySQL)

* The best and the most-used database in the world for online applications

It may be the mos used but only because the setup for PostgreSQL is slightly more complex in hosted environments

* Available and affordable for all

Yeah right...(so called "Enterprise features" aren't free with MySQL). PostgreSQL has no company behind it that decides what the features are it thinks are useful, it's completely user driven thus solves more problems at hand, plus the development process seems A LOT more sophisticated and transparent.

* Easy to use

That would be PostgreSQL. Talk about MySQL and reliable consistent backups while not bringing the database server down or doing a lock-all-tables (90% of the software out there is using MyISAM tables, which is simply impossible to backup in a consistent state without either a downtime or a second machine acting as a slave)

* Continuously improved while remaining fast, secure and reliable

It's definitely not fast. As soon as you start having more data and use queries that are a bit more complex PostgreSQL outperforms MySQL in every way. Performance, Usage, Administration...

* Fun to use and improve

That would be PostgreSQL. The documentation (which people keep saying is better than the PostgreSQL documentation) of MySQL is just bad, I find myself regularly scanning thru the documentation of both while hunting down some feature I need and apart there's really no match in how backgrounds are explained in the PostgreSQL documentation, MySQL just lacks this. I can understand that you get used to the way the docs are written for the product you use most often and thus need more time to find stuff in a new environment but IMHO when using both, also PostgreSQL wins hands down.

* Free from bugs

really...no comment.



I'm a sysadmin so often I don't have the choice, a lot of times people have the great idea just to get some software or use it in products without consulting us about possible problems and how to solve them. And then it needs MySQL, to us (my team) that means that with each project that somehow uses MySQL the overall maintenance time needed is growing erratically, while PostgreSQL is nearly a fire and forget database. Heck I'd even choose sqlite over PostgreSQL given all the stress we went thru by now.



(Reply to this) (Thread)


[info]mtocker
2009-04-09 05:11 pm UTC (link)
I think your complaint is different to mine. Nobody is forcing to use CSV, and we all know it's a half implemented feature that didn't really have a use to start with. You can't say that every postgres feature is invincible - there are bound to be some points weaker than others.

There are no enterprise only features in MySQL. You are incorrect there - MySQL has been fair here so far, with only the monitor at query analyzer being enterprise, and I have zero use for either.

My complaint is more about simple change to increase usability. While I think you are a troll that shouldn't be fed, that is something I will compliment postgres on, I think they've done a good job ;)

(Reply to this) (Parent)


[info]mike503
2009-04-10 05:40 am UTC (link)
i don't agree, necessarily.

i tried postgres various times, and i found mysql to be a hell of a lot easier to adminsiter, at least.

i never got to using postgres too much as it was giving me a headache to figure it out how to admin...

(Reply to this) (Parent)

Again with postgres
(Anonymous)
2009-04-09 03:56 pm UTC (link)
Try upgrading postgres without downtime... The postgres fanboys are really annoying.

As for MySQL and ease of use, another thing can be really bothering: If InnoDB fails to start and it's not your default storage engine mysql will just report a problem with the frm data when you try to access InnoDB tables, not something like "unsupported storage engine". Maybe that's fixed now, I have to check the bugtracker again.

(Reply to this)

Gerat post....
[info]burtonator
2009-04-09 07:48 pm UTC (link)
Yeah.... totally agree on all of these issues.

Your hypothesis is dead on I think....

(Reply to this)


(5 comments) - (Post a new comment)

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…