SHOW ENGINE
Sintassi
SHOW ENGINE nome_engine {STATUS | MUTEX}
Spiegazione
SHOW ENGINE
restituisce informazioni operative su uno Storage
Engine. Le seguenti istruzioni sono attualmente supportate:
SHOW ENGINE INNODB STATUS SHOW ENGINE INNODB MUTEX SHOW ENGINE PERFORMANCE_SCHEMA STATUS SHOW ENGINE ROCKSDB STATUS
Se Sphinx Storage Engine è installato, è supportata anche la seguente istruzione:
SHOW ENGINE SPHINX STATUS
Si veda SHOW ENGINE SPHINX STATUS.
Sinonimi più vecchi (ora deprecati) sono SHOW INNODB STATUS
, al posto di SHOW ENGINE INNODB STATUS
, e SHOW MUTEX STATUS
al posto di
SHOW ENGINE INNODB MUTEX
.
In MySQL 5.0, SHOW ENGINE INNODB MUTEX
si invoca con
SHOW MUTEX STATUS
. Quest'ultima istruzione elenca informazioni simili ma il formato dell'output è leggermente diverso.
SHOW ENGINE BDB LOGS
precedentemente mostrava informazioni sui file di log di BDB. A partire da MySQL 5.1.12, lo Storage Engine BDB non è più supportato, e l'istruzione produce un warning.
SHOW ENGINE INNODB STATUS
mostra informazioni approfondite dal monitor standard di InnoDB, che riguardano lo stato dello Storage Engine InnoDB. Per ulteriori informazioni sul monitor standard InnoDB e sugli altri monitor che forniscono informazioni sulle attività di InnoDB, si veda la pagina
http://dev.mysql.com/doc/refman/5.1/en/innodb-monitors.html.
SHOW ENGINE INNODB MUTEX
mostra statistiche sui mutex di InnoDB.
A partire da MySQL 5.1.2 a 5.1.14, l'istruzione mostra i seguenti campi:
- Type: Sempre InnoDB.
- Name: Il nome del mutex e il file sorgente dove è implementato.
Esempio:
'&pool->mutex:mem0pool.c'
Il nome del mutex indica il suo ambito. Per esempio, il mutex log_sys è usato dal sottosistema di log di InnoDB e indica quanto è intensa la sua attività. Il mutex buf_pool protegge il buffer pool di InnoDB. - Status: Lo stato del mutex. Il campo contiene diversi valori:
- count indica quante volte il mutex è stato richiesto.
- spin_waits indica quante volte è stato eseguito lo spinlock.
- spin_rounds indica il numero di round dello spinlock. (spin_rounds diviso per spin_waits fornisce la media dei round)
- os_waits indica il numero di attese del sistema operativo. Queste si verificano quando lo spinlock non ha funzionato (il mutex non è stato bloccato durante lo spinlock e si è reso necessario lasciare in attesa il sistema operativo)
- os_yields indica quante volte il thread, cercando di bloccare un mutex, ha rilasciato la sua timeslice e ha atteso il sistema operativo (nella speranza che permettere l'esecuzione di altri thread liberi il mutex e permetta di bloccarlo)
- os_wait_times, se la variabile di sistema timed_mutexes system vale 1 (ON), indica l'ammontare di tempo (in millisecondi) trascorso durante le attese del sistema operativo; se timed_mutexes vale 0 (OFF), il timing è disabilitato, perchiò os_wait_times è 0. timed_mutexes è OFF per default.
In MariaDB, e a partire da MySQL 5.1.15, l'istruzione mostra i seguenti campi:
- Type: Sempre InnoDB.
- Name: Il file sorgente dove il mutex è implentato e il corrispondente numero di riga. Questo numero di riga può variare a seconda della versione di MySQL.
- Status: Questo campo contiene gli stessi valori descritti sopra (count, spin_waits, spin_rounds, os_waits, os_yields, os_wait_times), ma solo se UNIV_DEBUG è stato definito in fase di compilazione (per esempio, in include/univ.h nella parte dell'albero dei sorgenti relativa a InnoDB ). Se invece UNIV_DEBUG non è stato definito, l'istruzione contiene solo il valore os_waits. In questo caso, le informazioni sulle quali si basa l'output non sono sufficienti per distinguere i mutex regolari dai mutex che proteggono i rw-locks (che permettono letture simultanee o un'unica scrittura). Di conseguenza l'output può contenere diverse righe che si riferiscono allo stesso mutex.
Le istruzioni restituite da questa istruzione possono essere utilizzate per diagnosticare i problemi del sistema. Per esempio, valori grandi per spin_waits e spin_rounds possono indicare problemi di scalabilità.