> 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-optimizations/optimization-strategies.md).

# Optimization Strategies

{% columns %}
{% column %}
{% content-ref url="/pages/VfdFwvPn6HFOESHP8gEZ" %}
[Duplicate Weedout Strategy](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimization-strategies/duplicateweedout-strategy.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
DuplicateWeedout is a semi-join execution strategy that runs the subquery as a regular inner join and removes duplicate record combinations using a temporary table.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/kZP85y2RJFuuJwltBQgs" %}
[FirstMatch Strategy](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimization-strategies/firstmatch-strategy.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
FirstMatch is a semi-join execution strategy that avoids duplicate results by short-cutting subquery execution as soon as the first matching record is found, improving performance.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/b3mixORMI0QnYiPLjiSC" %}
[Improvements to ORDER BY Optimization](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimization-strategies/improvements-to-order-by.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Describes MariaDB improvements to the ORDER BY optimizer, including cost- based index switching for ORDER BY with small LIMIT and multiple-equality handling.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/v385uK1mvTwo1izgomUF" %}
[LooseScan Strategy](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimization-strategies/loosescan-strategy.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
LooseScan is a semi-join execution strategy that avoids duplicate record combinations by using an index on the subquery table to pick one row per group.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/9Ms1mtXaxEQ74L0BINta" %}
[Semi-join Materialization Strategy](/docs/server/ha-and-performance/optimization-and-tuning/query-optimizations/optimization-strategies/semi-join-materialization-strategy.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Semi-join Materialization runs an uncorrelated IN-subquery into a temporary table, then joins it via the Materialization-scan or Materialization-lookup strategy.
{% endcolumn %}
{% endcolumns %}
