MySQL AB (now Sun's Database group) established a multi-pronged business model long ago: support contracts, dual licensing, and proprietary add-ons all play a role in making them one of the biggest success stories in the area of open source business. Today their MySQL Query Analyzer adds another brick to that edifice.
Not only has the company managed to keep growing and hiring over the past decade (because, as I pointed out severals years ago, their dual-licensing model requires them to hire the best contributors from outside), and to attract generous funding that ranges from investments by SAP to the Sun purchase, they also provide a teeming ecology of consultants (many of whom write books for me at O'Reilly) and after-market firms such as storage, backup, and clustering companies. But Sun's Database group has to add their own enhancements to provide that extra bump of productivity large enterprises are willing to pay for.
I talked to Rob Young, Senior Product Manager of MySQL Enterprise, yesterday about the Query Analyzer. It gives DBAs a convenient window, with instant updates and easy-to-read graphics, onto the kinds of questions that readers of the book High Performance MySQL have had to do by hacking together Perl scripts and scraping logfiles.
The analyzer can do simple things such as tell you how long a recent query took and how the optimizer handled it (the results of EXPLAIN statements). But it can also give historical information such as how the current runs of a query compare to earlier runs. Young said that DBAs used to running Oracle Enterprise Manager will be "very comfortable" with MySQL's enterprise support.
The new analyzer relies on capabilities already built into the MySQL Enterprise Monitor. For instance, the monitor contains a repository that preserves all data. The query analyzer is architected to run on an instance of MySQL Proxyso it can capture all the queries.
Young expects that the query analyzer will speed up the work done by sophisticated DBAs and programmers, and will provide a window onto what the database engine is doing for DBAs who never tried to figure it out before. Most of all, the analyzer will speed up development and deployment because sites will use it in conjunction with performance testing and the emulation of user activity to find out where the choke points are in the application and how they can expect it to perform after deployment. (One more plug: if you're responsible for predicting the future in your organization, check out The Art of Application Performance Testing.)