2011-06-30

Progress reporting for ALTER TABLE

I just finished my last MariaDB 5.3 feature before we go beta:

Progress reporting for ALTER TABLE, LOAD DATA INFILE etc.

This is a feature that I think every MySQL user who has ever waited for an ALTER TABLE to finish has wanted for a long time! I know people who have written scripts to monitor the size of the result files to try to estimate how much an ALTER TABLE has progressed.

Progress reporting means that:

There is a new column Progress in SHOW PROCESSLIST which shows the total progress (0-100 %)

INFORMATION_SCHEMA.PROCESSLIST has three new columns which allow you to see in which process stage we are and how much of that stage is completed:

STAGE

MAX_STAGE

PROGRESS_DONE (within current stage).

The client receives out-of-band progress messages which it can display to the user to indicate how long the command will take!

Progress reporting is enabled by default in the new mysql client. When enabled, for every supported command you get a progress report like: