> 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

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" %}
