This was a really interesting weekend. I've been digging through my newly discovered MySQL tuning tools most of the time, and discovered 2 great ideas that I could include to my monitor.
First is the mysqltuner 2.0 ruleset that I already mentioned, which I plan to add this week.
And the other is mk-query-profiler from the maatkit command line tools. It uses 'SHOW SESSION STATUS' to read lots of very interesting data about single executed queries. This would be a wonderful addition to my 'Query Analyzer Dialog'.
What I made this week:
I started out realizing that the slow query log loading didn't work at all, so I had to do some bug fixing there. Having the slow log working again I noticed that I forgot to implement grouping/summarization of the slow query columns such as examined_rows, sent_rows, lock_time etc. It took quite some code rearrangement to fix this.
And I kept finding new bugs that I had to fix first. One for example was that the query profiling information in the 'Query Analyzer Dialog' was recorded for the wrong query.
In the remaining time of the week I implemented
- chart config import and export using json as data format
- chart title and series label editing dialog
- a small look into drizzle support. With a small patch most of the status page now works under drizzle (some values don't exist and return php notices though)
- a fix for cpu charts not displaying anything
- error handling when the pma session runs out. It now displays a dialog asking the user to reload the page
- in the 'query analyzer dialog' it now displays all explain outputs (there are multiple explain rows when multiple tables are used)
- added a check for mysql versions that don't support table logging (< 5.1.6)
So lots of small needed fixes and adjustments, plus a unexpected power outage on friday that lasted most of the day kept me from writing actual code for the advisory system.
What I will do next week:
- Advisory system using mysqltuner 2.0 ruleset
What I still would like to do for phpMyAdmin, though not mission critical for my project:
- Display chart from display table page: Handle big amounts of data with zoomable charts
- Fix UI of create table dialog / enum editor
- Status Monitor: Add disable general_log + truncate table link to setup dialog
- rewrite charts page on the wiki
[Edit 01.08.11]
[Edit 02.08.11] I never run out of ideas -_-
- Add a 'Search' - link to the monitor tab allowing one to make searches over slow log / general log and their EXPLAIN's (e.g. find all queries using temporary tables)