SiteCrafting Blah Blah Blog
Oct. 3, 2007 at 3:59pm
A GUI Mess, or a Productivity Booster?
What's your take on the database admin debate?

While writing up a review on a database tool I discovered today, I was inspired to spark a discussion about database GUIs in general. The value of GUI tools for administering database systems like MySQL has been a topic of much debate.
The purist/traditional camp argues that a GUI imposes limitations on the user when working with the database. They will claim that it presents the user with a subset of the available features for a given database. They also suggest that the addition of another layer (a "presentation layer" perhaps?) increases security risks and can degrade performance.
In the other camp we have supporters that argue a GUI can increase productivity tremendously. Repetitive tasks can be automated, complex commands can be assembled in seconds rather than minutes, and for new users the learning curve can become quite a bit more forgiving.
I tend to lean towards the pro-GUI group, as it is hard to deny the productivity gains when using an admin tool that is well designed. However, I must acknowledge the importance of having command line experience. There are a number of reasons for this. For one, there will always be those complex queries and processes that a GUI designer will not have anticipated that you will have to crunch out manually. Perhaps more importantly, you will have a greater understanding of the inner-workings of whatever database you are working with. This knowledge can be essential when it comes to debugging and performing complex admin tasks (even from within a GUI).
The nutshell version: I think GUIs are great, but use them and don't abuse them. Make sure you know how to perform a task without an admin GUI before you use one. It may not be fun or easy, but it will definitely pay off in the end.
So now I pose the question to you - on which side of the line do you stand? Are thare any pluses/minuses to each side that haven't been mentioned yet?
Posted in Deep Thoughts, MS SQL Server, MySQL by Nick Williams
Comments (6)
So this is good. I have been thinking about this very issue myself. I use the command line 100% of the time at work, but I have experimented a few times with various GUIs. I have never found any that really suited me and there are very few that are not free. We can certainly afford something if it helps my productivity, but I am not going to go and buy six different GUIs to find the one that works for me. So, I am in a bit of a catch-22. You are certainly right in that with a well-thought out GUI it can both increase the productivity and make the learning curve a bit less steep. I would just encourage anyone to not strictly rely on a GUI. There will always be a need for a command line from time to time.
1 | Left by Keith Murphy | Oct. 3, 2007 at 9:13pm
I'd agree with everything I've read here. I always use the command line, and it's partly because, like Keith said, a lot of the GUIs you find online are either really poorly done open source applications, or they're commercial applications that lock out important functionality - like being able to copy and paste your query results - until you pay for the product.
I once almost went as far as to create a command line interface for SQLite that worked exactly like MySQL's, simply because I was so used to MySQL's and the SQLite frontends I had seen were so bad. They've gotten better, but if you are good with the command line and scripting, you can get away without a GUI a majority, if not all, of the time.
2 | Left by Bernie Zimmermann | Oct. 4, 2007 at 12:22am
I tend to use Navicat for most day-to-day admin tasks, since it handles the basics well, and has some features that are really useful in the environment I work in: import from Excel files, for instance, which would take a lot more effort to do on command line.
But for other tasks, you can't beat the command line: importing several million records is quick and easy from command line, but takes hours if you're using a GUI, since they don't support all the import commands.
3 | Left by Matthew Pettitt | Oct. 4, 2007 at 1:09am
I use the command line all the time also. I use the MySQL Query Browser only when i'm really developing an app and don't feel like typing in the same query a thousand times.
My feeling is that if someone is fully dependent on GUI applications they don't really know what is going on behind the scenes.
Also, I must agree most open source MySQL admin programs are terrible.
4 | Left by Marc Castrovinci | Oct. 4, 2007 at 7:16am
Joe says:
I went through Navicat a bit when I first started here, looking for something to replace Query Browser (which was crashing with much to great a frequency). I honestly felt like it had too much... more than I needed anyway.
At this point I use CocoaMySQL for general data browsing/updating. I do vastly prefer the updatable spreadsheet layout to straight queries for the simple stuff. Since it's open all the time, I'll also often jump over to the custom query window for building complex SELECT statements. Being able to lay out a query in readable format, and jump back to earlier lines with great ease, is a big improvement over command line capabilities.
I have, however, taken to using the terminal for pretty much everything administrative. All permissions, user admin, etc. For the most part, I've just run into way to many random crashes in the GUI programs to entrust the grant tables to them.
5 | Oct. 8, 2007 at 9:14am
Even though this is an "older" post I've been wanting to respond for a while.
Most of the comments here seem to use GUIs for development, and I completely agree that for running a query, a series of queries, saving and loading a series of queries and manipulating the results of a query, GUI tools don't add much functionality that a commandline script can't have.
However, for something like automated monitoring and administration, GUI tools are practically necessary. A commandline tool wouldn't hold a candle to, Nagios' GUI for monitoring 100 database servers, some of which I want to monitor for replication.
GUI tools can be better for checking differences among 100 different my.cnf files, configuration management of both my.cnf and schemas, and other such administration tools.
6 | Left by Sheeri | Nov. 4, 2007 at 12:00am