The OPTIMIZER_TRACE
table provides information produced by the optimizer tracing capability for traced statements. To enable tracking, use the optimizer_trace
system variable. For details, see MySQL Internals: Tracing the Optimizer.
The OPTIMIZER_TRACE
table has these columns:
QUERY
The text of the traced statement.
TRACE
The trace, in JSON
format.
MISSING_BYTES_BEYOND_MAX_MEM_SIZE
Each remembered trace is a string that is extended as optimization progresses and appends data to it. The optimizer_trace_max_mem_size
variable sets a limit on the total amount of memory used by all currently remembered traces. If this limit is reached, the current trace is not extended (and thus is incomplete), and the MISSING_BYTES_BEYOND_MAX_MEM_SIZE
column shows the number of bytes missing from the trace.
INSUFFICIENT_PRIVILEGES
If a traced query uses views or stored routines that have SQL SECURITY
with a value of DEFINER
, it may be that a user other than the definer is denied from seeing the trace of the query. In that case, the trace is shown as empty and INSUFFICIENT_PRIVILEGES
has a value of 1. Otherwise, the value is 0.