> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace.md).

# Optimizer Trace

{% columns %}
{% column %}
{% content-ref url="/pages/eWLCNXbJ9K78I3H7R23T" %}
[Basic Optimizer Trace Example](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace/basic-optimizer-trace-example.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Shows a complete optimizer trace example, from enabling optimizer\_trace to reading the resulting JSON from INFORMATION\_SCHEMA.OPTIMIZER\_TRACE.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/muz9IyekX1gcackVp6L5" %}
[How to Collect Large Optimizer Traces](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace/how-to-collect-large-optimizer-traces.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Explains how to collect large optimizer traces by raising max\_allowed\_packet and optimizer\_trace\_max\_mem\_size.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/SibUfbQ86WcokNPArpnH" %}
[Optimizer Trace for Developers](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace/optimizer-trace-for-developers.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Provides guidelines for server developers on what and how to write to the optimizer trace, including keeping the JSON valid.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/XbMSDhFbsvfMQJYzcqla" %}
[Optimizer Trace Guide](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace/optimizer-trace-guide.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Guides you through reading the JSON optimizer trace, using a simple query to illustrate the join\_preparation and join\_optimization steps.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/OFkiyquYTpYvJiGF9m0C" %}
[Optimizer Trace Overview](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace/optimizer-trace-overview.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Introduces optimizer trace, which produces a JSON document of the optimizer's decisions for SELECT/UPDATE/DELETE queries, its system variables, and the INFORMATION\_SCHEMA.OPTIMIZER\_TRACE table.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/2Ck9ZgEnBH5jFN4xTuwt" %}
[Optimizer Trace Resources](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizer/optimizer-trace/optimizer-trace-resources.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Links to external optimizer trace resources, including a MariaDB Fest 2020 walkthrough talk and the opttrace processing tool.
{% endcolumn %}
{% endcolumns %}
