> 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/optimizer-hints.md).

# Optimizer Hints

This section details special comments you can add to SQL statements to influence the query optimizer, helping you manually select better execution plans for improved performance and query tuning.

Optimizer hints are options available that affect the execution plan.

[SELECT Modifiers](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/select-modifier-hints.md) have been in MariaDB for a long time, while [Expanded (New-Style) Optimizer Hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/expanded-optimizer-hints.md) were introduced in MariaDB 12.0 and 12.1.

{% columns %}
{% column %}
{% content-ref url="/pages/TYXheCcqAzUKptMU7Gnm" %}
[SELECT Modifier Hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/select-modifier-hints.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
SELECT modifier hints such as HIGH\_PRIORITY, SQL\_CACHE, SQL\_NO\_CACHE, and SQL\_BUFFER\_RESULT that adjust how individual SELECT statements are executed.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/kdb4OYGIzgeNGnLlPqIZ" %}
[Expanded New-Style Optimizer Hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/expanded-optimizer-hints.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
New-style optimizer hints (MariaDB 12.0+) that give granular, per-query control over optimizer choices without changing server-wide variables.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/lUgpuI3vGKd6yrpy3A4G" %}
[Index-Level Hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/index-level-hints.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Index-level optimizer hints that tell the optimizer which indexes to use, ignore, or prefer for a given table.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/nlwvcx3x6aKKK360r8dQ" %}
[Query Block Naming](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/query-block-naming.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Assign names to query blocks with QB\_NAME() so optimizer hints can target specific subqueries or statement blocks.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/SsEuQFksuFLZzM2OvjLD" %}
[Table-Level Hints](/docs/server/ha-and-performance/optimization-and-tuning/optimizer-hints/table-level-hints.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Table-level optimizer hints that influence join order and per-table optimizer behavior, optionally scoped to a named query block.
{% endcolumn %}
{% endcolumns %}

## See Also

* [Use optimizer\_switch to enable/disable specific optimizations](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimizer-switch.md)

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
