La colonna TIME_MS in INFORMATION_SCHEMA.PROCESSLIST
In MariaDB, nella tabella INFORMATION_SCHEMA.PROCESSLIST
e nell'output di SHOW FULL PROCESSLIST
, è stata aggiunta la colonna 'TIME_MS
'. Questo campo mostra le stesse informazioni della colonna 'TIME
', ma in unità di millisecondi, con una precisione a livello di microsecondi (l'unità e la precisione della colonna 'TIME
' è di un secondo).
Il valore mostrato nelle colonne 'TIME
' e 'TIME_MS
' è il periodo di tempo che il thread a cui si riferiscono ha trascorso nello stato attuale. Perciò può essere usata per controllare, ad esempio, da quanto tempo un thread sta eseguendo la query attuale, o da quanto tempo si trova in idle.
MariaDB [(none)]> select id, time, time_ms, command, state -> from information_schema.processlist, (select sleep(2)) t; +----+------+----------+---------+-----------+ | id | time | time_ms | command | state | +----+------+----------+---------+-----------+ | 37 | 2 | 2000.493 | Query | executing | +----+------+----------+---------+-----------+ 1 row in set (2.00 sec)
Si noti che, a differenza di MySQL, in MariaDB la colonna 'TIME
' (così come la colonna 'TIME_MS
') non è influenzata dalle impostazioni di @TIMESTAMP
. Questo significa che può essere utilizzata in modo sicuro con i thread che modificano @TIMESTAMP
(come i thread di replica SQL). Si veda anche MySQL Bug #22047.
Una conseguenza è che la colonna 'TIME
' di SHOW FULL PROCESSLIST
e INFORMATION_SCHEMA.PROCESSLIST
non può essere usata per capire se uno slave è in ritardo rispetto al master. Per questo scopo, si può utilizzare invece la colonna Seconds_Behind_Master
nell'output di SHOW SLAVE STATUS
.
L'aggiunta del campo TIME_MS si basa sulla patch microsec_process, sviluppata da Percona.