From Wikibooks, open books for an open world
Jump to: navigation, search

The features that are discussed in this page have been developed for MariaDB and probably are not present in MySQL.

Pool of threads[edit]

Table elimination[edit]

Microseconds precision[edit]

SHOW PROCESSLIST, INFORMATION_SCHEMA.PROCESSLIST and the Slow Log now have a microsecond precision.

A microsecond is a unit of time equal to one millionth (10-6) of a second.


In MariaDB, an extra column `TIME_MS` has been added to the INFORMATION_SCHEMA.PROCESSLIST table, as well as to the output of SHOW FULL PROCESSLIST. This column shows the same information as the column `TIME`, but in units of milliseconds with microsecond precision (the unit and precision of the `TIME` column is one second).

The value displayed in the `TIME` and `TIME_MS` columns is the period of time that the given thread has been in its current state. Thus it can be used to check for example how long a thread has been executing the current query, or for how long it has been idle.

In MariaDB the `TIME` column and the `TIME_MS` column are not affected by any setting of @TIMESTAMP. This means that it can be reliably used also for threads that change @TIMESTAMP (such as the replication SQL thread).

The `TIME` column of SHOW FULL PROCESSLIST and INFORMATION_SCHEMA.PROCESSLIST can not be used to determine if a slave is lagging behind. For this, use instead the Seconds_Behind_Master column in the output of SHOW SLAVE STATUS.

The addition of the TIME_MS column is based on the microsec_process patch, developed by Percona.

Slow Log[edit]

The Slow Log includes details of execution plan and microsecond-precision resolution.

This addition is based on the microslow patch from Percona.


MariaDB's code has several optimizations which have been made after the fork has been launched.

Some speed enhancements are:

  • CHECKSUM TABLE is faster;
  • performance improvements for common cases of character set conversion;
  • test suite speedups.

The list is not complete.