SHOW ENGINE engine_name
{STATUS | MUTEX}
SHOW ENGINE
displays operational
information about a storage engine. The following statements
currently are supported:
SHOW ENGINE INNODB STATUS SHOW ENGINE INNODB MUTEX SHOW ENGINE {NDB | NDBCLUSTER} STATUS
Older (and now deprecated) synonyms are
SHOW INNODB STATUS
for
SHOW ENGINE INNODB
STATUS
and SHOW MUTEX STATUS
for
SHOW ENGINE INNODB
MUTEX
. SHOW INNODB
STATUS
and SHOW MUTEX STATUS
are
removed in MySQL 5.5.
In MySQL 5.0,
SHOW ENGINE INNODB
MUTEX
is invoked as SHOW MUTEX
STATUS
. The latter statement displays similar
information but in a somewhat different output format.
SHOW ENGINE BDB
LOGS
formerly displayed status information about
BDB
log files. As of MySQL 5.1.12, the
BDB
storage engine is not supported, and this
statement produces a warning.
SHOW ENGINE INNODB
STATUS
displays extensive information from the
standard InnoDB
Monitor about the state of
the InnoDB
storage engine. For information
about the standard monitor and other InnoDB
Monitors that provide information about
InnoDB
processing, see
Section 13.6.13.2, “SHOW ENGINE INNODB
STATUS
and the InnoDB
Monitors”.
SHOW ENGINE INNODB
MUTEX
displays InnoDB
mutex
statistics. From MySQL 5.1.2 to 5.1.14, the statement displays
the following output fields:
Type
Always InnoDB
.
Name
The mutex name and the source file where it is implemented.
Example: &pool->mutex:mem0pool.c
The mutex name indicates its purpose. For example, the
log_sys
mutex is used by the
InnoDB
logging subsystem and indicates
how intensive logging activity is. The
buf_pool
mutex protects the
InnoDB
buffer pool.
Status
The mutex status. The fields contains several values:
count
indicates how many times the
mutex was requested.
spin_waits
indicates how many times
the spinlock had to run.
spin_rounds
indicates the number of
spinlock rounds. (spin_rounds
divided
by spin_waits
provides the average
round count.)
os_waits
indicates the number of
operating system waits. This occurs when the spinlock
did not work (the mutex was not locked during the
spinlock and it was necessary to yield to the operating
system and wait).
os_yields
indicates the number of
times a the thread trying to lock a mutex gave up its
timeslice and yielded to the operating system (on the
presumption that allowing other threads to run will free
the mutex so that it can be locked).
os_wait_times
indicates the amount of
time (in ms) spent in operating system waits, if the
timed_mutexes
system
variable is 1 (ON
). If
timed_mutexes
is 0
(OFF
), timing is disabled, so
os_wait_times
is 0.
timed_mutexes
is off by
default.
From MySQL 5.1.15 on, the statement displays the following output fields:
Type
Always InnoDB
.
Name
The source file where the mutex is implemented, and the line number in the file where the mutex is created. The line number may change depending on your version of MySQL.
Status
This field displays the same values as previously described
(count
, spin_waits
,
spin_rounds
, os_waits
,
os_yields
,
os_wait_times
), but only if
UNIV_DEBUG
was defined at MySQL
compilation time (for example, in
include/univ.h
in the
InnoDB
part of the MySQL source tree). If
UNIV_DEBUG
was not defined, the statement
displays only the os_waits
value. In the
latter case (without UNIV_DEBUG
), the
information on which the output is based is insufficient to
distinguish regular mutexes and mutexes that protect
rw-locks (which allow multiple readers or a single writer).
Consequently, the output may appear to contain multiple rows
for the same mutex.
Information from this statement can be used to diagnose system
problems. For example, large values of
spin_waits
and spin_rounds
may indicate scalability problems.
If the server has the NDBCLUSTER
storage engine enabled,
SHOW ENGINE NDB
STATUS
displays cluster status information such as the
number of connected data nodes, the cluster connectstring, and
cluster binlog epochs, as well as counts of various Cluster API
objects created by the MySQL Server when connected to the
cluster. Sample output from this statement is shown here:
mysql> SHOW ENGINE NDB STATUS;
+------------+-----------------------+--------------------------------------------------+
| Type | Name | Status |
+------------+-----------------------+--------------------------------------------------+
| ndbcluster | connection | cluster_node_id=7,
connected_host=192.168.0.103, connected_port=1186, number_of_data_nodes=4,
number_of_ready_data_nodes=3, connect_count=0 |
| ndbcluster | NdbTransaction | created=6, free=0, sizeof=212 |
| ndbcluster | NdbOperation | created=8, free=8, sizeof=660 |
| ndbcluster | NdbIndexScanOperation | created=1, free=1, sizeof=744 |
| ndbcluster | NdbIndexOperation | created=0, free=0, sizeof=664 |
| ndbcluster | NdbRecAttr | created=1285, free=1285, sizeof=60 |
| ndbcluster | NdbApiSignal | created=16, free=16, sizeof=136 |
| ndbcluster | NdbLabel | created=0, free=0, sizeof=196 |
| ndbcluster | NdbBranch | created=0, free=0, sizeof=24 |
| ndbcluster | NdbSubroutine | created=0, free=0, sizeof=68 |
| ndbcluster | NdbCall | created=0, free=0, sizeof=16 |
| ndbcluster | NdbBlob | created=1, free=1, sizeof=264 |
| ndbcluster | NdbReceiver | created=4, free=0, sizeof=68 |
| ndbcluster | binlog | latest_epoch=155467, latest_trans_epoch=148126,
latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0,
latest_applied_binlog_epoch=0 |
+------------+-----------------------+--------------------------------------------------+
The rows with connection
and
binlog
in the Name
column
were added to the output of this statement in MySQL 5.1. The
Status
column in each of these rows provides
information about the MySQL server's connection to the cluster
and about the cluster binary log's status, respectively. The
Status
information is in the form of
comma-delimited set of name/value pairs.
The connection
row's
Status
column contains the name/value pairs
described in the following table.
Name | Value |
cluster_node_id |
The node ID of the MySQL server in the cluster |
connected_host |
The host name or IP address of the cluster management server to which the MySQL server is connected |
connected_port |
The port used by the MySQL server to connect to the management server
(connected_host ) |
number_of_data_nodes |
The number of data nodes configured for the cluster (that is, the number
of [ndbd] sections in the cluster
config.ini file) |
number_of_ready_data_nodes |
The number of data nodes in the cluster that are actually running |
connect_count |
The number of times this mysqld has connected or reconnected to cluster data nodes |
The binlog
row's Status
column contains information relating to MySQL Cluster
Replication. The name/value pairs it contains are described in
the following table.
Name | Value |
latest_epoch |
The most recent epoch most recently run on this MySQL server (that is, the sequence number of the most recent transaction run on the server) |
latest_trans_epoch |
The most recent epoch processed by the cluster's data nodes |
latest_received_binlog_epoch |
The most recent epoch received by the binlog thread |
latest_handled_binlog_epoch |
The most recent epoch processed by the binlog thread (for writing to the binlog) |
latest_applied_binlog_epoch |
The most recent epoch actually written to the binlog |
See Section 17.6, “MySQL Cluster Replication”, for more information.
The remaining rows from the output of
SHOW ENGINE NDB
STATUS
which are most likely to prove useful in
monitoring the cluster are listed here by
Name
:
NdbTransaction
: The number and size of
NdbTransaction
objects that have been
created. An NdbTransaction
is created
each time a table schema operation (such as
CREATE TABLE
or
ALTER TABLE
) is performed on
an NDB
table.
NdbOperation
: The number and size of
NdbOperation
objects that have been
created.
NdbIndexScanOperation
: The number and
size of NdbIndexScanOperation
objects
that have been created.
NdbIndexOperation
: The number and size of
NdbIndexOperation
objects that have been
created.
NdbRecAttr
: The number and size of
NdbRecAttr
objects that have been
created. In general, one of these is created each time a
data manipulation statement is performed by an SQL node.
NdbBlob
: The number and size of
NdbBlob
objects that have been created.
An NdbBlob
is created for each new
operation involving a BLOB
column in an NDB
table.
NdbReceiver
: The number and size of any
NdbReceiver
object that have been
created. The number in the created
column
is the same as the number of data nodes in the cluster to
which the MySQL server has connected.
SHOW ENGINE NDB
STATUS
returns an empty result if no operations
involving NDB
tables have been
performed during the current session by the MySQL client
accessing the SQL node on which this statement is run.
MySQL Enterprise.
The SHOW ENGINE
statement provides valuable information about the state of
your server. For expert interpretation of this information,
subscribe to the MySQL Enterprise Monitor. For more
information, see http://www.mysql.com/products/enterprise/advisors.html.
engine_name
STATUS
User Comments
Add your own comment.