One relatively unknown feature of MariaDB is the ability of the client to show progress reports for long commands.
Let's get started by following the ensuing steps:
There's nothing to configure as progress reporting is turned on by default and works with the
ALTER TABLE
,ADD INDEX
,DROP INDEX
, andLOAD DATA INFILE
commands. It also works with theCHECK TABLE
,REPAIR TABLE
,ANALYZE TABLE
, andOPTIMIZE TABLE
commands when using the Aria storage engine. For example, if we needed to change a large table from using the MyISAM storage engine to the Aria storage engine, it might look similar to the following command:MariaDB [test]> ALTER TABLE my_big_table engine=aria; Stage: 1 of 2 'copy to tmp table' 29.26% of stage done
The progress report line will update every 5 seconds until the operation is complete.
For the clients that support it, mysqld
(the MariaDB server) sends progress report messages every 5 seconds. The mysql
command-line client supports it, as does the mytop
shell script included with MariaDB.
You can easily add support for progress messages on other clients by following the instructions at https://mariadb.com/kb/en/progress-reporting/. If our favorite client application does not support progress reporting, encourage the developers to add it!
We can change the default 5 second update by setting the progress_report_time
variable to a value greater than 5
. Values ranging from 1
to 5
are ignored.