Our tool was at first a total hack: Bash scripts sampled SHOW PROCESSLIST, Python stripped literals from queries and then Awk scripts aggregated the results. I ran it from my desktop on demand. Yet this tool found many problems that resulted in a significant reduction in load on servers. It was eventually replaced with something much better, but the replacement still isn't as pretty as the Query Analyzer.
I like that the Query Analyzer makes query analysis available to more users. I also like that it doesn't rely on SHOW PROCESSLIST sampling as such sampling misses more short running queries than you might expect. It is good that it doesn't (or won't) require deployment of the MySQL Proxy to gather workload data as that will limit the use of it:
- Many of us can't get applications to switch the port they use to connect to the proxy instead of a server, at least not switch quickly.
- It takes a long time to qualify software for use and I have yet to do that for the Proxy. Any software deployed between clients and the db server is yet another point of failure and opportunity for misconfiguration.
- How does the proxy impact performance? Is it still single-threaded? Does it invoke Lua for every query or query result? Where are benchmark results for dbt2 or sysbench for the Proxy?