24 September 2010

Since Oracle have taken an interest in MySQL (see here) there have been some interesting developments. Not least of these is the target they have set themselves of increasing their share in Windows environments. I have to wonder how much of this is lip service and how much is genuine lets mutate our product into something new.

I have to say that I'm a big fan of MySQL and have been a DBA for several years now and yes running it on Windows servers at that. I can explain in a few paragraphs why most users drop it at the first opportunity. Let me explain.

As I work in education, I meet a lot of young people who typically have just 12 weeks to learn any new package. So lets see how MySQL stacks up against the competition in this area.

First and foremost, our students can get a free copy of Access via Microsofts' Academic Alliance (or equivalent licensing deal). This means to compete, MySQL will have to give students a FULL product at the same price. Students can install the Access platform on any of their machines and moving their data between them is as simple as copying a single file.

By contrast, for MySQL we rely on the latest community version of SQLYog (now SQL Workbench). So already we are using a third-party front end just to manipulate data. The next problem is we have to teach students this strange concept that the database server is constantly running, not just when they start up Ms Access. This means they have to backup their data to a SQL file and this is where things usually start to go wrong.

You see we are limited to when we can update our version of MySQL on our server since once students start using it, we can't just upgrade when we feel like it. We have to wait until after submissions, marking and sometimes later reviews by external examiners. So we end up in a situation where students download the latest version and then struggle to upload their SQL file. Why? Because the SQL dump file seems to change format at almost every update.

Add to this students, like water opt for the easiest route. Many of them will likewise opt to install Wamp, Xamp or Mamp because lets face it even a seasoned administrator does not look forward to setting up a new server and having to configure IIS, MySQL and PHP all over again. If I had £1 for every time a student told me they had installed one of these and were now unable to get their projects running on our server, well I wouldn't still need to work here.

Of course there have been other problems in the past as well. The Old_Password function (if memory serves) because of a difference between the MySQL code and the PHP library attempting to connect. These things we just take for granted as administrators. Code moves on and when you hit a brick wall there's always Master Google. Then again if you want academics to support your cause don't make major changes because that means rewriting notes (and they did that last year or the year before).

So what should MySQL do to take over the Windows world? Well KISS might be a good starting point (the concept, not the band). For a start add a proper front-end. Make it simple to move data from machine to machine (including servers). Educate the user a little (explain how the DB is live and the save/backup is only a snapshot of the current data for example). Use XML for the data transfer and make sure that all future versions can import data from previous versions (remember MS Access 2007 has a limited "Save as Access 2003" format and claims to have forward compatibility).

Most importantly start making these changes now. When Google launched a browser, Microsoft launched a search engine. It stands to reason that if MySQL launches a Windows developer IDE, Microsoft is likely to react by launching an Access Server. Which will have the highest uptake? Probably the one which is easiest to get started with and costs the least. We're public sector after all and despite the recent cuts in public expenditure we've already seen our student facing technical team cut by 50% over the last decade. Never has simplicity and reliability been more urgently required (so instead of %/localhost, a domain option would be useful).

If you really want to take the crown though, add some finesse. Have a query builder and tester in the user interface and then... wait for it because this is revolutionary... produce the PHP, VB, Java code to make the connection and bring back the results. The dev would then just need to concentrate on style sheets and making the page pretty.